strong区别于retain
2016-07-02 00:13
471 查看
1:ARC环境下,strong代替retain.weak代替assign
2:weak的作用:在ARC环境下,所有指向这个对象的weak指针都将被置为nil。这个T特性很有用,相信很多开发者都被指针指向已释放的对象所造成的EXC_BAD_ACCESS困扰过,使用ARC以后,不论是strong还是weak类型的指针,都不会再指向一个已经销毁的对象,从根本上解决了意外释放导致的crash。
3:assign的作用:简单赋值,不改变引用计数,对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) 适用简单数据类型
4:copy的作用:建立一个索引计数为1 的对象,然后释放旧对象
5:strong的作用:在ARC环境下,只要某一对象被一个strong指针指向,该对象就不会被销毁。如果对象没有被任何strong指针指向,那么就会被销毁。在默认情况下,所有的实例变量和局部变量都是strong类型的。可以说strong类型的指针在行为上跟非ARC下得retain是比较相似的
6:retain的作用:在非ARC时代,你需要自己retain一个想要保持的对象,ARC环境下就不需要了。现在唯一要做的就是用一个指针指向这个对象,只要指针没有被重置为空,对象就会一直在堆上。当指针指向新值的时候,原来的对象就会被release一次。这对实例变量,sunthesize的变量或者是局部变量都是实用的。
2:weak的作用:在ARC环境下,所有指向这个对象的weak指针都将被置为nil。这个T特性很有用,相信很多开发者都被指针指向已释放的对象所造成的EXC_BAD_ACCESS困扰过,使用ARC以后,不论是strong还是weak类型的指针,都不会再指向一个已经销毁的对象,从根本上解决了意外释放导致的crash。
3:assign的作用:简单赋值,不改变引用计数,对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) 适用简单数据类型
4:copy的作用:建立一个索引计数为1 的对象,然后释放旧对象
5:strong的作用:在ARC环境下,只要某一对象被一个strong指针指向,该对象就不会被销毁。如果对象没有被任何strong指针指向,那么就会被销毁。在默认情况下,所有的实例变量和局部变量都是strong类型的。可以说strong类型的指针在行为上跟非ARC下得retain是比较相似的
6:retain的作用:在非ARC时代,你需要自己retain一个想要保持的对象,ARC环境下就不需要了。现在唯一要做的就是用一个指针指向这个对象,只要指针没有被重置为空,对象就会一直在堆上。当指针指向新值的时候,原来的对象就会被release一次。这对实例变量,sunthesize的变量或者是局部变量都是实用的。
相关文章推荐
- http://jingyan.baidu.com/article/7f41ecec1b7a2e593d095ce6.html
- 172. Factorial Trailing Zeroes
- Codeforces Round #360 (Div. 2) D. Remainders Game
- LeetCode - 11. Container With Most Water
- Mybaits深入了解(二)—-入门实例
- Error:Maven Resources Compiler: Failed to copy 'XXX' to 'YYY': YYY (拒绝访问。)
- Error:Maven Resources Compiler: Failed to copy 'XXX' to 'YYY': YYY (拒绝访问。)
- Repairing Company(poj 3216)
- Mybaits深入了解(一)----带你入门
- AIX 交换分区使用并定位
- Failed with exception Unable to rename: hdfs://ns1/tmp/hive-hadoop/hive...to...
- waits events statisc
- Xen环境下搭建NFS实现Domain0与DomainU之间共享文件
- 使用SDK Program FPGA failed 的解决办法
- Codeforces Round #360 (Div. 2) D. Remainders Game(数学)
- Unsupported major.minor version 52.0 (unable to load class com.servlet.MailSenderServlet)
- failback 和failover
- Jenkins 邮件配置 (使用 Jenkins Email Extension Plugin)
- FlashRAID分布式集群解决方案亮相中国闪存峰会
- OpenCV Error:Assertion failed ...