什么情况使用 weak 关键字?

  1. 在 ARC 中,在有可能出现循环引用的时候,往往要通过让其中一端使用 weak 来解决,比如: delegate 代理属性

  2. 自身已经对它进行一次强引用,没有必要再强引用一次,此时也会使用 weak,自定义 IBOutlet 控件属性一般也使用 weak;当然,也可以使用strong。

不同点:

  1. weak 此特质表明该属性定义了一种“非拥有关系” (nonowning relationship)。为这种属性设置新值时,设置方法既不保留新值,也不释放旧值。此特质同assign类似, 然而在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。 而 assign 的“设置方法”只会执行针对“纯量类型” (scalar type,例如 CGFloat 或 NSlnteger 等)的简单赋值操作。

  2. assign 可以用非 OC 对象,而 weak 必须用于 OC 对象

最新文章

  1. CA认证原理以及实现(上)
  2. HDU5977 Garden of Eden(树的点分治)
  3. iOS如何跳到系统设置里的各种设置界面
  4. git常用功能
  5. CentOS上安装SQL Server vNext CTP1
  6. 从c到c++
  7. 越狱Season 1-Episode 2: Allen
  8. Oracle自增主键的添加[sequence]--表数据已存在
  9. C++ 学习基础一
  10. jquery中的事件
  11. HDU1565+状态压缩dp
  12. mysql常见的hint(转载的)
  13. android自定义控件---添加表情
  14. Noj - 在线强化训练2
  15. fetch get方法的时候报错
  16. zabbix邮件自动预警
  17. Linux_CentOS-服务器搭建 <六>
  18. 【Spark】Spark-架构
  19. 《linux性能及调优指南》 3.3 内存瓶颈
  20. Windows 2008下系统网站运行环境的搭建

热门文章

  1. vos语音业务规范操作承诺函
  2. Element(Vue)+Express(Node)模拟服务器获取本地json数据
  3. 51NOD 1092 回文字符串 LCS
  4. [转载]弹出一个不带地址栏、工具栏的IE非模态窗口
  5. SQL-常用数据类型
  6. C# 安装 Visual Studio IDE
  7. 画X,模拟水题
  8. 安装ubuntu-tweak
  9. 自学youku_web
  10. Windows下MySQL数据库的安装与关闭开机自启动