2010-06-21 78 views
4

當創建Objective-C中一個UIViewController派生類,什麼進入init方法,什麼應該進入loadView什麼成viewDidLoad - 更重要的原因,以及什麼好處(性能?)這是否有?對象和視圖設置和初始化在Objective-C

此外,這與UIView派生類有什麼關係,您所擁有的唯一選項是init方法?

我知道模板代碼已經對每種方法的內容都有評論,但是我不清楚爲什麼每個事情都會發生在他們說的地方。

澄清

我想在一個較低的水平,也許知道,什麼是事物之間的實際差異在「初始化」,「的loadView」和「viewDidLoad中」正在做。框架在這些調用之間做了什麼,可能會影響我設置我的觀點和做其他工作的方式/時間?這些方法如何受線程影響?

回答

0

你想知道一些較低級別的東西。

init:此方法在任何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的初始化方法。