了解-对象图

对象图(Object Graphs)

面向对象的应用会包含一个对象相互关联的复杂网络. 对象通过拥有另一个对象, 或者包含另一个对象, 或者对其发消息时强引用, 而彼此相互链接, 形成一个网, 这个对象网络就称为对象图.

即使对象很少, 应用程序的对象图仍然会有很复杂的环形引用,还有对各独立对象的链接, 如下图所示:

了解-对象图_第1张图片
image

图中只显示了一个简单Cocoa应用的不完整的对象图(实际会比上图有更多的对象连接).从图中可以看到各种引用关系:

  • 视图层级的引用关系: window -> Content View -> Subview[Button, Text]之间的父子关系.
  • 视图之间的引用关系: Text <-> Text, 会因响应链以next responder相互引用, 以便实现键盘焦点切换.
  • target-action的引用关系:Button的事件处理, 会让Button链接到其他对象
  • ......等等,还有很多

有些情况下, 你可能需要将对象图(通常只是应用程序中完整对象图的一部分)转换为可以保存到文件或传输到另一个进程或计算机, 然后重建的形式..

Nib文件和属性列表就是OS X对象图保存为文件的2个例子.Nib文件是对UI之间复杂关系的归档, 如window的视图层级.属性列表是对基本数据类型层级关系的序列化.

对象图的概念主要用于归档序列化中.

参考文档:

  • 苹果官方文档

你可能感兴趣的:(了解-对象图)