【问题标题】:view setBackgroundColor does not call viewdidload in Xcode 4.5在 Xcode 4.5 中查看 setBackgroundColor 不会调用 viewdidload
【发布时间】:2012-09-21 04:28:12
【问题描述】:

我刚刚升级到 Xcode4.5。当我运行单元测试时,我意识到 [view setbackgroundcolor] 不会调用 [viewdidload]。

有人遇到过同样的问题吗?

【问题讨论】:

  • 为什么要设置 UIView 的背景色触发 viewDidLoad 方法?
  • 好吧,我从别人那里继承了一些代码。评论明确提到了这一点。我确实在 xcode 4.4 中运行了测试 viewdidload 被调用。

标签: ios ios6 xcode4.5


【解决方案1】:

这是一些您不应该依赖的未记录行为,因为它(有一天会破坏您的代码)只是破坏了您的代码...

【讨论】:

    【解决方案2】:

    你用的是iOS6吗?

    http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

    在 iOS 6 之前,当发生内存不足警告时,如果 UIViewController 类知道以后可以重新加载或重新创建它们,它会清除其 >views。如果发生这种情况,它还会调用 >viewWillUnload 和 viewDidUnload 方法,让您的代码有机会放弃与视图层次结构关联的任何对象的所有权,包括从 nib 文件加载的对象、在 viewDidLoad 方法中创建的对象、和对象在运行时 >lazily 创建并添加到视图层次结构中。在 iOS 6 上,视图永远不会被清除,并且这些 >methods 永远不会被调用。如果您的视图控制器需要在内存不足时执行特定任务,则应覆盖 didReceiveMemoryWarning 方法。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多