iOS的init相關(guān)及其相關(guān)方法的經(jīng)驗(yàn)漫談

initWithCoder

  • 解檔方法,使用xib/storyboard等文件都會調(diào)用這個(gè)方法;
  • 并不是一個(gè)初始化的好地方(當(dāng)從Nib中加載時(shí)),因?yàn)橛行﹐utlet可能為nil,所以這個(gè)時(shí)候我們最好使用awakeFromNib。

awakeFromNib

  • 當(dāng)使用xib/storyboard,是一個(gè)好的初始化去處。
  • 只會被加載一次。
  • 當(dāng)你需要寫一個(gè)UIView的子類,并且想在load nib的時(shí)候做一些初始化工作的時(shí)候,可以選擇。bundle在load nib時(shí)會給每一個(gè)View對象發(fā)送一個(gè)awakeFromNib消息。

initWithFrame

  • 用于代碼創(chuàng)建,可以動態(tài)地添加組件&設(shè)置自身的屬性

iOS中比較重要的幾個(gè)方法

+ (void)load -> +(void)initialize -> - (void)loadView
->
- (void)viewDidLoad ->
- (void)viewWillAppear:(BOOL)animated ->
- (instancetype)initWithCoder:(NSCoder *)aDecoder ->
- (void)awakeFromNib ->
- (instancetype)initWithFrame:(CGRect)frame ->
- (void)layoutSubviews
  • load:加載到內(nèi)存中,程序剛啟動的時(shí)候調(diào)用。調(diào)用在main函數(shù)之前。

  • initialize:初始化類,類第一次使用的時(shí)候調(diào)用。

  • loadView:設(shè)置控制器的根View,重寫該方法后,以該方法為主,storyboard文件將不再起作用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 譯者注:本文是對 Apple 官方文檔的翻譯,原文地址為:https://developer.apple.com/...
    ampire_dan閱讀 7,863評論 0 13
  • 很多朋友如果是初學(xué)iOS開發(fā),可能會被其中的幾個(gè)加載方法給搞得暈頭轉(zhuǎn)向的,但是這幾個(gè)方法又是作為iOS程序員必須要...
    Jackie_123閱讀 3,507評論 4 18
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,614評論 30 472
  • 關(guān)于資源 適用于計(jì)算機(jī)程序的資源是與程序可執(zhí)行代碼相關(guān)的數(shù)據(jù)文件。資源可以通過將代碼之外的復(fù)雜數(shù)據(jù)集或圖形內(nèi)容創(chuàng)建...
    nicedayCoco閱讀 735評論 0 0
  • 文/墨瀚 見與不見 你就在那里 透過鏡片 舉止之間 見與不見 我就在這里 鏡片里面 齊眉舉案 見與不見 眼睛就在那...
    七朵蓮閱讀 339評論 0 0

友情鏈接更多精彩內(nèi)容