Strong.  week

我先说下你两个代码的区别,第一个,当button 从试图移除之后不会释放,因为有强引用类型指向它,所以如果不再次释放一下,这个引用计数就是1

第二个,如果从父试图移除,这个button就直接释放了,因为是弱引用,弱引用不对引用计数造成影响


何时使用的问题,如果一个对象在某段时间中反复加载,而你又不希望每次加载都要重新alloc 的话,那就strong,strong 保证对此对象保持一个强引用,对于这个对象,只要有1个strong引用的话,那它就不会释放,当然多个strong同时作用于它也不会释放。


如果一个对象在某段时间只会加载一次,并且加载之后确定不再使用了,那就可以使用weak,这样当其他原因导致引用计数减1(比如 removefromsuperview)的时候,此对象就自动释放了。无需再在delloc 里面再release一次,但你要保证释放之后确实不再使用此对象,否则将导致错误


其实strong和retina的作用有些像,只不过strong 和weak是在arc里面引入的,他俩算是一对儿, 对应关系有点类似 retiam 和assign

推荐阅读更多精彩内容

  • 1.1 什么是自动引用计数 概念:在 LLVM 编译器中设置 ARC(Automaitc Reference Co...
    __silhouette阅读 4,103评论 1 17
  • Cocoa内存管理机制 (1)当你使用new、alloc、copy方法创建一个对象时,该对象的保留计数器值为1.当...
    John_LS阅读 2,385评论 0 6
  • 内存管理 简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与a...
    丶逐渐阅读 1,522评论 1 16
  • OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性...
    克鲁德李阅读 252评论 0 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 25,898评论 30 469
  • 曾经以为我长大了,懂事了,可以做好很多事情,也可以承担起很多责任。但,我还是太幼稚了。其实,我一直都还是那个懵懂无...
    雪雪Y阅读 189评论 0 1
  • 浅浅依然 香知悦读073【拖延心理学】 Day2 2017年12月8日 by 彭彭 彭彭第一天的带读竟是如此的轻松...
    浅浅依然阅读 43评论 0 0
  • 乖,摸摸头 很早就听说过的一本书,因为如此鸡汤的一个名字,一直都没有看。无意中翻开后却惊喜万分。看完后又对自己的人...
    萌小_小懒阅读 270评论 0 0
  • 现在自媒体创业非常火,很多人都跃跃欲试了,希望能够通过写作成为一个超级自媒体人。 要知道真正成熟的自媒体不是一个人...
    华思语阅读 306评论 7 18