2

Apple 说,我需要在我的文件所有者中为 Nib 文件中的所有顶级对象设置 Outlets。

据我所知,这些对象不是文件所有者本身(没有意义,对吧?)和第一响应者。

我不确定:Nib 中的 View 对象,以及 nib 中的任何控制器对象。我需要为 File's Owner 中的人提供一个出口吗?

这个问题是关于内存管理的。他们说:

您应该始终在某处保留指向这些对象的指针,因为您的应用程序负责通过使用它们来释放它们

所以当用户关闭应用程序时,如果我错过了这些出口,我会遇到笨重的内存泄漏吗?

4

1 回答 1

3

这是正确的。Nib 文件的文件所有者是该 nib 的入口点。由于您的 nib 之外的任何内容都不能引用除文件所有者之外的任何内容,因此只有文件所有者可以引用 nib 中的其他顶级项目。如果文件的所有者不引用它们,那么当不再需要 nib 时就无法释放这些对象,它们将在内存中徘徊。

nib 的生命周期是这样的:

  1. nib 已加载,并且文件的所有者与您指定的对象相关联。
  2. 为 nib 中的所有顶级对象分配内存。
  3. 所有的插座都按照笔尖的规定连接起来。
  4. ……事情发生了……
  5. 文件的所有者对象被发送一个释放消息。
  6. 文件的所有者释放连接到其出口的所有对象。

如您所见,如果在最后一步中未释放,则在第二步中分配的任何对象仍将在内存中浮动。

于 2009-04-24T16:53:46.740 回答