5

在大多数示例中,loadNibNamed没有使用 value 的返回值,所以我猜它使用的是 owner 参数。但是它是如何工作并与所有者对象建立连接的呢?为了以这种方式加载笔尖,我的所有者类应该满足什么样的要求?

我能猜到的唯一要求是

  1. 所有者类必须在 nib 文件中的一个或多个对象上定义一个出口
  2. nib 文件的所有者应该设置为正在加载 nib 的类,然后loadNibNamed可以将 owner 参数设置为self
  3. nib 文件应将所有连接设置为所有者类中定义的插座

我的假设是正确的,还是在使用时我还需要考虑其他任何事情loadNibNamed

4

1 回答 1

5

尽管您还应该考虑内存管理(iPhone 与 Mac 略有不同),但您对所需内容有基本的了解。要真正理解这种方法的原理,您应该阅读Resources Programming Guide的Nib Files部分。它涵盖了用于建立连接的实际方法(这可能很重要),以及完成后各种对象将具有的保留计数。同样,这些在 Mac 和 iPhone 之间都略有不同。iPhone 总体上改进了 nib 对象处理方式的一致性。

为了更好地衡量,我总是建议人们阅读内存管理编程指南中的 Nib 对象的内存管理。无论您是否使用较低级别的方法,这都是批判性阅读。

于 2010-06-20T02:53:11.527 回答