我正在使用以下代码&我正在收到警告
elements
代码
Perform selector may cause leak because select is unknown
请告诉我谁能摆脱这个警告?
答案 0 :(得分:1)
警告是有原因的。您可以在执行之前检查mainImage是否响应选择器。警告不会消失,但更安全。像这样:
SEL _selector = NSSelectorFromString(@"asdf");
if([self respondsToSelector:_selector])
[self performSelector:_selector];
答案 1 :(得分:1)
此警告的原因是,使用ARC时,运行时需要知道如何处理您正在调用的方法的结果。结果可能是任何东西:void,int,char,NSString *,id等.ARC通常从您正在使用的对象类型的标题中获取此信息.3
ARC确实只有4件事要考虑返回值:4
ns_returns_retained
)ns_returns_autoreleased
)This thread详细说明了这一点。
答案 2 :(得分:-1)
你通过摆脱这个糟糕的代码来解决它。对于那些认为这段代码是个好主意的人:不,不是。这是一种聪明而失败的尝试。
您正在将数组的名称存储在数组中,这完全不安全。我建议你分析代码,找到可能存储的选择器,而不是这个可怕的代码,你存储一个块,它将图像作为参数并返回图像而不是选择器,然后调用块。