美文网首页
strong,weak,assign的区别

strong,weak,assign的区别

作者: 钎探穗 | 来源:发表于2016-04-09 21:01 被阅读97次
    • 使用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的区别

          本文链接:https://www.haomeiwen.com/subject/gorblttx.html