ios - awakeFromNib 的好处?

标签 ios delegates views awakefromnib

我一直在学习 coredata,方法是基于选中“使用 coredata”的 xcode 导航 Controller 模板制作许多简单的测试应用程序。

App 委托(delegate)中的 awakeFromNib 方法一直是我的问题来源,因为我正在向 Controller 添加其他 View 并更改加载顺序,因此 RootViewController 可能是第二或第三选择。

我已经弄清楚 awakeFromNib 正在做什么,我已经删除了它,因此应用程序委托(delegate)不再绑定(bind)到任何特定 View 。 (所以当我确实想要加载 RootViewController 时,我会将它作为常规 View 加载,并使用它自己的 viewDidLoad 来初始化 View 的 managedObjectContext)。

我的问题:在 AppDelegate 中使用 awakeFromNIb 是否有性能提升或其他好处?或者它只是另一种方式来做与我在 viewDidLoad 方法中所做的相同的事情?

最佳答案

所有方法在不同时间和不同情况下触发。

awakeFromNib 在从磁盘加载与类关联的 nib 文件时调用。任何可以拥有 nib 的类都可以使用它。 viewDidLoad 仅由 View Controller 使用。它通常在从 nib 加载时也被调用,但它也可以被在内存中创建的 View 调用(非常罕见的情况。)

在任何一种情况下,您只需要在第一次加载实例时只希望运行一次的功能。例如。一个常见的 nubie 错误是将代码放在每次 View 出现时都需要运行的 viewDidLoad 中。就像打开详细 View 的主视图一样,然后在关闭详细 View 时重新出现。如果主视图的代码在 viewDidLoad 中,它只会在第一次加载主视图时运行,但不会在主视图消失和重新出现的任何后续时间运行。

您通常不会初始化任何其他 View ,也不会在从 nib 唤醒的应用委托(delegate)中执行任何操作。这通常在 applicationDidFinishLaunching 中执行。

关于ios - awakeFromNib 的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6450876/

相关文章:

ios - Xcode 6 GM - 无法使用 Playground

ios - 当您将 self 分配给委托(delegate)时,究竟会发生什么?

Drupal View : Get nodes with the same taxonomy as the current node

c# - 创建具有任意参数的委托(delegate)

C# - 如何将委托(delegate)传递给另一个方法?

asp.net-mvc-3 - 在代码MVC Razor中渲染部分 View

ios - View 快速显示其外部的 subview

ios - 在 swift 中实现 GTScrollNavigationBar

ios - 在自定义表格 View ios 中显示按钮

iphone - 确定用户是否拒绝了 CoreLocation 权限