Xcode出现may cause a leak非忽略的解决方法

时间:2023-03-10 01:50:39
Xcode出现may cause a leak非忽略的解决方法

前面提到可以把may cause a leak当成安静的美代码忽略掉,但其实还是有另一种方法滴。

你可以用如下代码替换以消除該警告:

[xxx performSelector:_cmd withObject:nil afterDelay:0];

这样等于告诉编译器在选择器被触发执行时(fire)建立一个定时器。当涉及到用一个定时器完成选择器时,不可能返回一个值。因此编译器会停止抱怨。

在这个例子中,向一个没有参数的selector传递一个nil参数,会被简单的忽略掉。

但是因为这里现在涉及到定时器,并且尽管延时为0,selector仍然可能不会在当前帧渲染之前执行。

所以这可能会在selector执行前增加单个帧渲染的一点延时——但在关闭一个弹出菜单时不应该成为一个问题。