所以这是我的设置:
看起来很简单,但这些部分都非常耗费资源。当他们弹回时我找不到一个好的方法来彻底清除XIB的内存 - 我只是调用[viewController release],虽然它工作并最终调用UIViewController子类的 - (void)dealloc方法, XIB文件中的一些内容仍保留在内存中(我可以在ObjectAllocations中看到它们,我可以在ActivityMonitor中看到大量内存)。
基本上我要问的是从内存中完全删除动态加载的XIB的最佳方法是什么?
答案 0 :(得分:6)
viewController.view = nil;
如果NIB控制的UIViewController上的view
为nil,那么它将在下次请求时自动重新加载NIB。这正是-didReceiveMemoryWarning
的工作原理。
正如我对此的考虑更多,这不会立即丢弃您的IBOutlets,在您的情况下可能很重要。因此,您还需要为Memory Management of Nib Objects中描述的IBOutlet实现特殊的内存管理。
您需要按照描述实施-setView:
。仔细阅读整篇文档。我已经在Memory Managing IBOutlets中写了一个关键点的快速摘要。