Obj-C Pattern&对象记忆足迹

时间:2013-01-23 22:49:40

标签: objective-c cocoa memory-management nsview nsobject

在这个特定的cocoa项目中,我有一组视图的属性,并且从xml文件中解析了相应的子视图。

一次只有一个视图处于活动状态,视图可能会频繁更改。

最好

A。)使用已解析的属性初始化视图对象,并在数组中存储对它们的引用,以便在必要时使用。

b。)使用已解析的属性初始化NSObject,这些属性可以根据需要通过工厂创建它的相应视图。

这背后的逻辑是,在需要时,ARC可以取消分配未使用的NSView(大多数),因为它们没有持久引用。

这引出了另一个问题。

当引用NSView但没有显示时,是否所有这些都在后台完成(因为NSView是一个NSObject子类)?

1 个答案:

答案 0 :(得分:0)

您正在描述实现自己的xib版本。我要说的是,“最好”的答案是重新考虑你的设计决定。可能有更好,更简单的方法来实现您想要的结果。

描述NSView与NSView数组的所有属性和子视图的NSObject数组之间的内存差异是名义上的。

最有效的内存方式是通过NSWindowController或NSViewController延迟反序列化单个视图。