weak和assign的区别

使用weak和assign修饰OC对象的区别

  • 相同点
 1.weak修饰OC对象
 2.assign修饰OC对象和基本数据类型
  • 不同点
    1.成员变量
    1.weak生成的成员变量是用__weak修饰的,比如lLCFPersion * __weak _cat
    2.assign生成的成员变量是用__unsafe_unretained修饰的,LCFPerson *__unsafe_unretained
    2.__weak和__unsafe_unretained
    1.都不是强指针(不是强引用),不能保存对象的命
    2.__weak:所指向的对象销毁后,会自动变成nil指针(空指针)
    3.__unsafe__unretained :所指向的对象销毁后,仍旧指向已经销毁的对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容