码迷,mamicode.com
首页 > 其他好文 > 详细

strong,weak,assign的区别

时间:2016-04-09 21:50:00      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

  • 使用assign:对基础数据类型(NSInteger)和C数据类型(int,float,double,char等)。
    使用copy:对NSString;
    使用retain(引起引用计数加1):对其他NSObject(实例对象)和其子类;
  • 属性关系有两种主要类型:strong和weak,相当于非ARC环境里的retain和assign。只要存在一个强引用,对象就会一直存在,不会被销毁。
  • Objective-C中一直存在循环引用的问题,但在实际应用中很少出现循环引用。对于过去那些使用assign属性的地方,在ARC环境中要使用weak代替。大部分引用循环是由委托(delegate)引起的,所以应该总是把delegate属性声明为weak。当引用的对象被销毁之后,weak引用会被自动置为nil,与assign相比这是一个巨大的进步,因为assign可以指向被释放掉的内存,导致程序崩溃。
    • 空指针:没有存储任何内存地址的指针(NULL指针) 
    • 野指针:所指对象被销毁,它所占用的内存已是垃圾内存.

strong,weak,assign的区别

标签:

原文地址:http://www.cnblogs.com/hpbb/p/5372647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!