我刚刚升级到 Xcode4.5。当我运行单元测试时,我意识到 [view setbackgroundcolor] 不会调用 [viewdidload]。
有没有人有同样的问题?
这是一些你不应该依赖的无证行为,因为它(有一天会破坏你的代码)只是破坏了你的代码......
你用的是iOS6吗?
在 iOS 6 之前,当发生内存不足警告时,如果 UIViewController 类知道以后可以重新加载或重新创建它们,则会清除其 >views。如果发生这种情况,它还会调用 >viewWillUnload 和 viewDidUnload 方法,让您的代码有机会放弃与视图层次结构关联的任何对象的所有权,包括从 nib 文件加载的对象、在 viewDidLoad 方法中创建的对象、和对象在运行时 >lazily 创建并添加到视图层次结构中。在 iOS 6 上,视图永远不会被清除,并且这些 >methods 永远不会被调用。如果您的视图控制器需要在内存不足时执行特定任务,它应该覆盖 didReceiveMemoryWarning 方法。