Objective-C中的对象和视图设置和初始化

时间:2010-06-21 03:34:43

标签: iphone objective-c cocoa-touch

在objective-C中创建UIViewController派生类时,init方法的内容,loadView中的内容以及viewDidLoad中的内容 - 更重要的是为什么,以及什么利益(绩效?)有这个吗?

另外,这与UIView派生类有什么关系,你唯一的选择是init方法?

我知道模板代码已经对每种方法的内容都有评论,但我不清楚为什么每件事情都在他们所说的地方。

澄清

我想知道可能在较低级别,'init','loadView'和'viewDidLoad'之间的实际差异是什么。框架在这些调用之间做了什么,这些调用可能会影响我设置视图的方式/时间并执行其他工作?这些方法如何受到线程的影响?

1 个答案:

答案 0 :(得分:0)

你想知道一些低级别的东西。

init:在ANY NSObject子类上调用此方法。这是设置对象的原因,您可能已经知道了。在许多模型(如在MVC模式中)类中,直接使用init。至于UIKit类,很少需要直接调用init。不应该使用它。在UIViewController中,使用initWithNibNamed:初始化它。您可以覆盖此方法,但在大多数情况下,这不是必需的。这个方法是在类上调用EVER的第一种方法(在任何视图设置之前,等等)。

loadView:viewDidLoad:阅读了这篇文章iPhone SDK: what is the difference between loadView and viewDidLoad?

唯一需要知道的是-init是NSObject标准初始化方法。 -loadView和-viewDidLoad是UIViewController的初始化方法。