performSelector系列方法编译器警告-Warc-performSelector-leaks
来源:互联网 发布:物联网农业数据平台 编辑:程序博客网 时间:2024/06/18 11:12
更新:如果selector是属性的get方法,而且是在运行时才确定的话,比较好的作法应该是使用KVC来获取,最近我正在看KVC的官方文档,之后会把学习笔记发布出来
如果selector是在运行时才确定的,performSelector时,若先把selector保存起来,等到某事件发生后再调用,相当于在动态绑定之上再使用动态绑定,不过这是编译器不知道要执行的selector是什么,因为这必须到了运行时才能欧确定,使用这种特性的代价是,如果在ARC下编译代码,编译器会发生如下的警告:
warning:performSelector may cause a leak because its selector is unknown [-Warc-performSelector-leak]
原因是:编译器不知道执行的selector是什么,因此也就不了解其方法签名及其返回值,甚至连是否有返回值都不清楚,由于编译器不知道方法名,也就没有办法运用ARC的内存管理规则来判定返回值是不是应该释放。所以ARC采用了一种比较谨慎的方法,就是不添加释放操作,然而这么做有可能导致内存泄漏,因为方法在返回对象时可能已经将其保留了。
如果你确定不会发生内存泄漏的情况下,可以使用如下的语句来忽略掉这条警告
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
类推:(忽略Xcode Clang编译器警告)
当你确定编译器的警告对你来说没有什么用处的时候,为了避免心烦,你可以使用#pragma clang diagnostic ignored “xxx” 这样的语句来忽略掉相应的警告
0 0
- performSelector系列方法编译器警告-Warc-performSelector-leaks
- IOS忽略-Warc-performSelector-leaks警告
- -Warc-performSelector-leaks
- 消除performSelector:警告的方法
- performSelector
- performSelector
- performSelector
- PerformSelector
- performSelector
- 忽略performSelector警告
- 忽略performSelector警告
- performSelector引起的警告解决办法
- 去除performSelector的leak警告
- performSelector:withObject:方法
- 取消performSelector:方法
- IOS performSelector: 方法简述
- 去掉xcode 4.2里的performselector警告
- 忽略performSelector在ARC下的警告
- EventEmitter 使用
- Android studio下NDK开发环境配置及开发流程
- 计算机语言发展史
- 链表分割问题
- 背景颜色转为UIImage
- performSelector系列方法编译器警告-Warc-performSelector-leaks
- AFNetworking解析(三)
- BestCoder 2nd Anniversary A,B,C解题报告
- 无名管道总结
- EventBus的初步使用
- 404请求错误 location.href
- 欢迎使用CSDN-markdown编辑器
- 【EHCache】EHCache技术文档-下载地址
- 杭电 1863 最小生成数