iOS: 属性声明strong和retain竟然不一样
2016-02-24 12:35
330 查看
总之,strong和retain竟然有不一样的地方,而声明Block属性请务必用copy。
在处理用strong声明的Block属性引发的问题时偶然发现的。在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong)。不过在声明Block时,使用strong和retain会有截然不同的效果。strong会等于copy,而retain竟然等于assign!
当然定义Block还是应该用copy(还有其他需要注意的地方,可以参考这篇文章:iOS: ARC和非ARC下使用Block属性的问题),因为非ARC下不copy的Block会在栈中,ARC中的Block都会在堆上的。
在处理用strong声明的Block属性引发的问题时偶然发现的。在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong)。不过在声明Block时,使用strong和retain会有截然不同的效果。strong会等于copy,而retain竟然等于assign!
当然定义Block还是应该用copy(还有其他需要注意的地方,可以参考这篇文章:iOS: ARC和非ARC下使用Block属性的问题),因为非ARC下不copy的Block会在栈中,ARC中的Block都会在堆上的。
相关文章推荐
- iOS新技术
- iOS开发-graphics
- ios 调用支付宝
- iOS之属性定义和内存管理
- IOS中延时执行的几种方式的比较和汇总
- ios-苹果开发者账号类型说明
- iOS问题笔记-[[NSBundle mainBundle] pathForResource: ofType:]方法获取不到资源路径
- iOS开发必看的博客汇总
- 制作iOS Ad-Hoc测试应用
- block使用小结、在arc中使用block、如何防止循环引用、weak–strong dance
- iOS开发~CocoaPods使用详细说明
- iOS9 问题收集(warnings )
- iOS 经典书总结
- 一句话知识点_iOS
- iOS学习笔记60-IOS动画Core Animation详解
- iOS开发"此证书的签发者无效"问题解决
- iOS核心动画之CALayer-自定义层
- IOS绘制动画颜色渐变折线条
- iOS Create
- iOS 类的判断方法