【发布时间】:2011-07-05 09:30:06
【问题描述】:
我在这里关注 Apple 的示例代码:http://developer.apple.com/library/ios/#samplecode/TableSearch/Listings/AppDelegate_m.html#//apple_ref/doc/uid/DTS40007848-AppDelegate_m-DontLinkElementID_4
这是一个展示如何使用 SearchDisplayController 对表格进行搜索的示例。
与我的问题相关的代码是:
- 在 viewDidLoad -
- 在 viewDidDisappear 中 -
因此,它表示它正在保存搜索 UI 的状态,以便在重新创建视图时可以恢复它。
它还说“如果它们保存在 didReceiveMemoryWarning 中,它会恢复搜索设置。”
所以我的理解是,当内存不足时,这个视图可能会被卸载。当用户单击该选项卡以查看该视图时,它可能会再次重新创建。
所以我想模拟我的视图被卸载的低内存情况,以便我可以确认恢复搜索词的逻辑是否正常工作。但我失败了。
- 我在 viewDidLoad 中添加了跟踪;它永远不会触发超过一次,即视图从未被卸载
- 我使用了 iPhone 模拟器 - 模拟内存警告 - 视图也永远不会被卸载。
总结我的问题:
- 标签栏控制器中加载的视图是否会因为内存不足而被 iOS 卸载?
- 如果上述问题的答案是肯定的,那么 iOS 模拟器是否能够重现该问题?
【问题讨论】:
-
“见证人”是什么意思?看到视图将如何在您的眼前消失?这不会发生,因为默认实现是检查是否可以释放视图。
-
嗨 yan.kun,我的意思是我想看看我的视图是如何因为内存不足警告而被卸载和重新创建的。您的意思是标签栏控制器中的视图由于内存不足而永远不会被卸载? (对不起,我真的不知道)
-
我认为他只是意味着您不能“见证”正在显示的视图的卸载。如果您想在视图中查看 didReceiveMemoryWarning 的行为,则必须在它不显示时调用该方法。
标签: iphone objective-c