zoukankan      html  css  js  c++  java
  • 委托、观察者、和目标的所有权

    向外委托任务的对象并不拥有委托或数据源对象的所有权。类似地,控件和单元不拥有其目标对象的所有权,通告中心也不拥有通告观察者的所有权。因此,这些框架对象都遵循保持其目标、观察者、委托、和数据源对象的约定,而是保持这些对象的一个弱引用-也就是说,存储一个对象的指针。

    按照对象所有权策略的推荐,对被其它对象拥有的对象应该进行保持和无条件归档,而对被引用(但不被拥有)的对象则不进行保持,但进行有条件地归档。这个所有权策略的实际目的是为了避免循环引用,即避免两个对象互相引用的情况。保持对象会创建一个该对象的强引用,而在所有的强引用释放之前,对象不能被解除分配。如果两个对象彼此互相保持,则它们将永远不能被解除分配,因为它们之间的关联不能被打断。

    如果您创建一个带有委托、数据源、观察者、和目标的Cocoa框架类的子类,则在该子类中永远不应显式保持这些对象,而应该创建这些对象的弱引用(未经保持),以及有条件地进行归档。

  • 相关阅读:
    软件测试大赛决赛简讯
    期末提交作业清单
    4月12日-4月19日任务清单
    20160405
    软件系统设计文档模板
    吐槽
    致我亲爱的学生
    HBase 环境搭建
    Zookeeper 环境搭建
    hive 部署
  • 原文地址:https://www.cnblogs.com/sanjin/p/2217213.html
Copyright © 2011-2022 走看看