0

在 AppKit 中,我们可以通过 获得“representedObject” NSViewController,此表示对象通常设置为 ModelController 或NSViewController 显示的模型,这与绑定非常有用,因为您只需设置新的表示对象并且模型详细信息在视图中更新,但在 iPhone 的情况下(UIKit,没有可用的 Cocoa 绑定),没有这样的代表对象,UIViewController所以这里有几件事我有兴趣知道:-

  1. 将模型绑定到 UIViewController 的最佳/推荐方式是什么?最好不要维护大量IBOutlets并调用 setter 来更新更改后的模型数据以在视图中显示。
  2. UIViewController 的相关模型应该如何/何时发布?
  3. 何时-[UIViewController dealloc]调用,在典型的 iPhone 应用程序中。

我正在寻找构建一些类,以便UIViewController视图和模型之间的坐标,但同时,在不需要时释放模型。

TIA。

4

1 回答 1

0

这就是 Cocoa 绑定的大问题,它隐藏了很多非常简单的东西。

当保留计数达到 0 时调用 dealloc。对于视图控制器,当其他控制器释放它并且它没有任何其他保留时会发生这种情况。如果您按照规则进行内存管理,则不必担心这一点。

如果您想进入该抽象级别,请为您的模型对象或模型控制器创建一个属性。正确使用该属性(就像始终self.model用于接收分配一样),并在您的 dealloc 实现中释放该对象,并将其设置为 nil in viewWillUnload. 属性为您创建访问器。

至于在不需要时发布您的模型,以上将为您处理 - 无需过度考虑。如果您正在创建海量数据结构,那么除了上述之外,您还可以考虑将它们构建viewWillAppear和拆除。viewWillDisappear

与绑定相比,您将需要更多的出口和粘合代码;但是您必须编写更少的代码来管理您的绑定。请记住,iPhone 应该是一个功能较弱的设备,并且您应该更加注意资源 - 而UIViewControllerapi 为您提供了这样做的机会。

于 2010-04-11T09:12:21.967 回答