iOS 关于修饰代理用weak还是assign。

对于这个问题,昨天看朋友写的代码偶尔注意到的。自己平常都是用weak进行修饰,他却用到了assign一时不知对错。然后搜索了一下。下面罗列一下结果。

对于weak:指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。

对于strong:该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retain Cycles)

对于assing:也有weak的功效。但是网上有assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针;而weak一旦不进行使用后,永远不会使用了,就不会产生野指针。以上是自己搜索看到的解答,谁有更好的说法,可以评价回复。采纳优质意见。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.对于strong: 该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retai...
    Pandakingli阅读 2,718评论 0 3
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,055评论 0 7
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,427评论 0 6
  • 上次老弟过生日的时候,大家约着吃完饭去KTV唱歌。对我来说,唱歌的事仿佛是上个世纪。 记得很多年前,在烟台的时...
    王可淇阅读 394评论 0 0
  • 放假两周,不长不短,但不知怎的,想冲回学校。是手机不好玩,床不舒服,书不好看,孩子(不是我的)太调皮,还是脑子出...
    期待你的蜕变阅读 444评论 0 3