【发布时间】:2012-10-24 15:40:31
【问题描述】:
我正在继承 UIViewController 以防止我的“masterButtons”和“subButtons”集的代码重复。
这一切看起来都很好,直到我意识到在大约 1200 次页面更改之后 - 仅在 3 个空白页面之间导航(仅显示按钮和一些其他对象)应用程序将总是崩溃!
仪器(+ 在设备上进行测试)没有显示任何内存泄漏,但确实显示了这些按钮对象的数百个实例存在!(已选择“已创建且仍然存在”过滤器。) 此外,永远不会从任何 ViewController 调用 viewDidUnload / didReceiveMemoryWarning!
我在我的应用程序的其他页面上没有遇到这些问题(UIViewController 没有被子类化)。
所以看起来 ViewController 的内容正在重新创建,并且之前创建的任何内容都没有被删除。 子类化 UIViewController 是否有任何常见的陷阱可能会导致这种情况?有什么我可能会遗漏的吗?
建议将不胜感激。 (遇到这个问题,我想把我的 Mac 扔出窗外!)
Top_ViewController (contains 'MasterButtons')
v
Area1_ViewController (subclass of TOP_ViewController) (contains 'subButtons', and a few texts fields etc.)
v
aPage_ViewController (subclass of Area1_ViewController) (currently blank page)
(使用 ARC 和故事板。故事板视图控制器具有各自的“aPage_ViewController”作为它们的类。)
【问题讨论】:
-
如何/在哪里创建按钮?请显示一些代码...
-
在 iOS 6 下
viewDidUnload已被弃用,并且永远不会被调用,因此如果您在其中做某事,您可能需要考虑更改应用程序的代码/行为以解决这些更改API。 -
是的,我将删除 viewDidUnload 方法。 (我会尽快发布一些代码......)