weak和assign的区别?

  • weak策略在属性所指的对象遭到摧毁时,系统会将weak修饰的属性对象的指针指向nil,在OC给nil发消息是不会有什么问题的;如果使用assign策略在属性所指的对象遭到摧毁时,属性对象指针还指向原来的对象,由于对象已经被销毁,这时候就产生了野指针,如果这时候在给此对象发送消息,很容造成程序奔溃
  • assigin 可以用于修饰非OC对象,而weak必须用于OC对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文逻辑图: 在知道他们区别之前,我们首先要知道NSObject对象的赋值操作做了哪些操作。 A=C其实是在内存中...
    壮了个壮阅读 20,933评论 40 148
  • 使用weak和assign修饰OC对象的区别 相同点 不同点1.成员变量1.weak生成的成员变量是用__weak...
    carpond阅读 1,805评论 0 0
  • 1、weak OC对象 2、assign 基本数据对象 OC对象 3、strong OC对象 4、copy NSS...
    陈水寒阅读 3,388评论 0 0
  • 1.weak 此特质表明该属性定义了一种“非拥有关系” (nonowning relationship)。为这种属...
    yemingsha阅读 1,792评论 0 0
  • 有些人喜欢做梦,而且是不可及的白日梦,即便现实很骨感,但仍旧不愿醒来,那是一场触手可及的梦,一场一夜暴富的梦,一场...
    任性不吃肉阅读 1,571评论 1 1

友情链接更多精彩内容