我收到ARC编译器的以下警告
performSelector可能导致泄漏,因为它的选择器未知
这是我的代码:
[self performSelector:config.selector];
为什么我会收到此警告?我理解编译器无法检查选择器是否存在,但为什么会导致泄漏?如何更改我的代码,以便我不再收到此警告?
答案 0 :(得分:0)
正如@rmaddy所指出的,这是performSelector may cause a leak because its selector is unknown
的副本有一个比抑制警告或玩其他游戏更好的解决方案。
而不是使用SEL
,而是使用回调块。
即。而不是config.selector
,请转到config.handlerBlock(...)
。
这样,你就可以全面保持类型安全,不会妨碍使用ARC,也没有#pragma dance可以暂时禁用警告或任何事情。