from:http://www.zpluz.com/thread-49-1-1.html

strong weak

strong与weak是由ARC新引入的对象变量属性
ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。
@property(strong) MyClass *myObject;
相当于@property(retain) MyClass *myObject;
@property(weak) MyOtherClass *delegate;
相当于@property(assign) MyOtherClass *delegate;
强引用与弱引用的广义区别:
  强引用也就是我们通常所讲的引用,其存亡直接决定了所指对象的存亡。如果不存在指向一个对象的引用,并且此对象不再显示列表中,则此对象会被从内存中释放。
  弱引用除了不决定对象的存亡外,其他与强引用相同。即使一个对象被持有无数个弱引用,只要没有强引用指向他,那麽其还是会被清除。没办法,还是 “强哥” 有面子。
简单讲strong等同retain
weak比assign多了一个功能,当对象消失后自动把指针变成nil,好处不言而喻。
__weak, __strong 用来修饰变量,此外还有 __unsafe_unretained, __autoreleasing 都是用来修饰变量的。
__strong 是缺省的关键词。
__weak 声明了一个可以自动 nil 化的弱引用。
__unsafe_unretained 声明一个弱引用,但是不会自动nil化,也就是说,如果所指向的内存区域被释放了,这个指针就是一个野指针了。
__autoreleasing 用来修饰一个函数的参数,这个参数会在函数返回的时候被自动释放。

转载于:https://blog.51cto.com/memory/1175355

objective-c(iOS5) 中weak和strong使用的区别相关推荐

  1. 【iOS atomic、nonatomic、assign、copy、retain、weak、strong】的定义和区别详解

    一.atomic与nonatomic 1.相同点 都是为对象添加get和set方法 2.不同点 atomic为get方法加了一把安全锁(及原子锁),使得方法get线程安全,执行效率慢 nonatomi ...

  2. @synthesize@dynamic@private,@protected,@publicassign、weak、strong、retain、copy、nonatomic、atomic

    iOS属性修饰关键字 1. @private,@protected,@public,@package详解及使用 @privite:私有的,只有本类(不包括子类)自己拥有 @protected:受保护的 ...

  3. ios5中apple增加了解析JSON的api——NSJSONSerialization。

    ios5中apple增加了解析JSON的api--NSJSONSerialization.网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON.TouchJSON.YA ...

  4. iOS属性之assign,copy,retain的区别以及weak和strong的区别

    为什么80%的码农都做不了架构师?>>>    @property (nonatomic, assign) NSString *title; 什么是assign,copy,retai ...

  5. 1.1 objective-c中的内存管理

    备注:本来在一年前有一个出版社找到我,让我写一系列关于iOS性能优化的书.但是一直因为工作原因,没有能够按时交付.(其实就是自己懒)所以现在讲已经写好的部分章节分享到博客中,希望对大家有所帮助,如果有 ...

  6. iOS5中 UIViewController新方法的使用

    在iOS5中,ViewController中新添加了下面几个方法: addChildViewController:  removeFromParentViewController  transitio ...

  7. HTML中粗体strong与b,斜体em与i标签的区别

    1)关于html标签中b和strong两个的区别,我也是今天用到时才注意的,以前都是混着用的,今天工作的时候才注意到这两个标签的区别. 用在网页上,默认情况下它们起的均是加粗字体的作用,二者所不同的是 ...

  8. HTML中id、name、class 区别

    HTML 中 id与name 区别 一个name可以同时对应多个控件,比如checkbox和radio 而id必须是全文档中唯一的 id的用途  1) id是HTML元素的Identity,主要是在客 ...

  9. HTML5中id、name、class 区别

    转载地址:http://www.2cto.com/kf/201210/161751.html 网上找不到专门针对html5的,只能找到以前HTML的.看了一下,它们差不多,尤其是本文后面专门讲的区别讲 ...

最新文章

  1. ADO.NET五大对象详解
  2. Angularjs切换网站配色模式简单示例2(切换body元素的class)
  3. NodeJS 使用官方oracledb库连接数据库教程
  4. 比较大小教案计算机西瓜,比较大小小班教案
  5. Python图像纹理分割
  6. window上安装fasttext
  7. P问题、NP问题、NPC问题、NPC-hard问题
  8. 苹果NFC功能以及Apple Pay的初探
  9. 洛谷 P5708 三角形面积 C语言
  10. Python爬虫入门教程导航帖
  11. svn提交代码报错:A conflict in the working copy obstructs the current operation,解决办法
  12. CCNA,CCNP,CCIE是什么?
  13. C语言简单实现文件传输
  14. Python地学分析 — 地理空间参考系介绍
  15. 蜂蜜什么时候喝,才可以获得蜂蜜更大的好处?真可以治疗咳嗽?
  16. BHex宣布完成1500万美元天使轮融资
  17. 商标和美术版权的区别?版权登记的好处
  18. 联想电脑 关闭打开机盖自动开机功能
  19. easyUI 滚动条
  20. revit开发__电缆桥接截面分布

热门文章

  1. servlet请求转发
  2. Lotus开发之Lotus Notes中域的验证
  3. android 通过html设置textview的内容不同种颜色
  4. RAC环境下配置TAF (Final)
  5. 【转】关于“Please install at least one language pack”的详
  6. 问题十二:怎么用ray tracing画第一张图
  7. 如何利用第三方数据进行大数据分析
  8. 大数据分析平台的组成部分有哪些
  9. 大数据分析平台应注意哪些方面
  10. 数据挖掘的步骤有哪些