欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用

 更新時間:2017年02月28日 15:56:48   投稿:lqh  
這篇文章主要介紹了IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用的相關(guān)資料,需要的朋友可以參考下

loadView,viewDidLoad,viewDidUnload,這三個函數(shù)到底應(yīng)該怎么用?

搜索一下,全是轉(zhuǎn)載,大概內(nèi)容是這樣:

  1. loadView 手動加載view
  2. viewDidLoad用于nib文件加載后,進(jìn)一步處理
  3. viewDidUnload是viewDidLoad的鏡像

參考官方文檔,我給出糾正:

一、loadView

永遠(yuǎn)不要主動調(diào)用這個函數(shù)。view controller會在view的property被請求并且當(dāng)前view值為nil時調(diào)用這個函數(shù)。如果你手動創(chuàng)建view,你應(yīng)該重載這個函數(shù)。如果你用IB創(chuàng)建view并初始化view controller,那就意味著你使用initWithNibName:bundle:方法,這時,你不應(yīng)該重載loadView函數(shù)。

這個方法的默認(rèn)實現(xiàn)是這樣:先尋找有關(guān)可用的nib文件的信息,根據(jù)這個信息來加載nib文件,如果沒有有關(guān)nib文件的信息,默認(rèn)實現(xiàn)會創(chuàng)建一個空白的UIView對象,然后讓這個對象成為controller的主view。

所以,重載這個函數(shù)時,你也應(yīng)該這么做。并把子類的view賦給view屬性(property)(你create的view必須是唯一的實例,并且不被其他任何controller共享),而且你重載的這個函數(shù)不應(yīng)該調(diào)用super。

如果你要進(jìn)行進(jìn)一步初始化你的views,你應(yīng)該在viewDidLoad函數(shù)中去做。在iOS 3.0以及更高版本中,你應(yīng)該重載viewDidUnload函數(shù)來釋放任何對view的引用或者它里面的內(nèi)容(子view等等)。

這個網(wǎng)上的資料都說的很不全面,尤其是藍(lán)色字部分。

二、viewDidLoad

這個函數(shù)在controller加載了相關(guān)的views后被調(diào)用,而不論這些views存儲在nib文件里還是在loadView函數(shù)中生成。而多數(shù)情況下是做nib文件的后續(xù)工作。

網(wǎng)上資料對這個函數(shù)的描述則完全不對。

三、viewDidUnload

這個函數(shù)是viewDidLoad的對立函數(shù)。在程序內(nèi)存欠缺時,這個函數(shù)被controller調(diào)用()。由于controller通常保存著與view(這里黑體的view指controller的view屬性)相關(guān)的對象(一般是view的子view)或者其他運行時創(chuàng)建的對象的引用,所以你必須使用這個函數(shù)來放棄這些對象的所有權(quán)以便內(nèi)存回收。但不要釋放那些難以重建的數(shù)據(jù)(不要在這個函數(shù)中釋放view)。

通常controller會保存nib文件建立的views的引用,但是也可能會保存著loadView函數(shù)創(chuàng)建的對象的引用。最完美的方法是使用合成器方法:

self.myCertainView = nil;

這樣合成器會release這個view,如果你沒有使用property,那么你得自己顯式釋放這個view。

網(wǎng)上對這個函數(shù)的描述含含糊糊,看了等于沒看。

另外:如果controller存儲了其他object和view的引用,你還得在dealloc方法中釋放這些內(nèi)存。對于iOS2.x,你還必須在調(diào)用super dealloc方法前將這些引用置為nil。

四、結(jié)論

所以流程應(yīng)該是這樣:

(loadView/nib文件)來加載view到內(nèi)存 ——>viewDidLoad函數(shù)進(jìn)一步初始化這些view ——>內(nèi)存不足時,調(diào)用viewDidUnload函數(shù)釋放views

—->當(dāng)需要使用view時有回到第一步

如此循環(huán)

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • iOS下拉選擇菜單簡單封裝

    iOS下拉選擇菜單簡單封裝

    這篇文章主要為大家詳細(xì)介紹了iOS下拉選擇菜單封裝代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 你知道Tab Bar圖標(biāo)原來還可以這樣玩嗎

    你知道Tab Bar圖標(biāo)原來還可以這樣玩嗎

    這篇文章主要給大家介紹了關(guān)于Tab Bar圖標(biāo)另外一些大家不知道的玩法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS UICollectionView實現(xiàn)橫向滑動

    iOS UICollectionView實現(xiàn)橫向滑動

    這篇文章主要為大家詳細(xì)介紹了iOS UICollectionView實現(xiàn)橫向滑動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • iOS?block的值捕獲與指針捕獲詳解

    iOS?block的值捕獲與指針捕獲詳解

    Block它是C語言級別和運行時方面的一個特征,下面這篇文章主要給大家介紹了關(guān)于iOS?block的值捕獲與指針捕獲的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • iOS開發(fā)存儲應(yīng)用程序Info.plist知識全面詳解

    iOS開發(fā)存儲應(yīng)用程序Info.plist知識全面詳解

    這篇文章主要為大家介紹了iOS開發(fā)存儲應(yīng)用程序Info.plist知識全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • iOS開發(fā)總結(jié)之UILabel常用屬性介紹

    iOS開發(fā)總結(jié)之UILabel常用屬性介紹

    下面小編就為大家分享一篇iOS開發(fā)總結(jié)之UILabel常用屬性介紹,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • iOS實現(xiàn)消息推送及原理分析

    iOS實現(xiàn)消息推送及原理分析

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)消息推送,及針對消息推送原理進(jìn)行分析,感興趣的小伙伴們可以參考一下
    2016-08-08
  • fastlane自動化打包iOS APP過程示例

    fastlane自動化打包iOS APP過程示例

    這篇文章主要為大家介紹了fastlane自動化打包iOS APP的過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • iOS如何獲取當(dāng)前日期前后N天的時間示例代碼

    iOS如何獲取當(dāng)前日期前后N天的時間示例代碼

    這篇文章主要給大家介紹了關(guān)于iOS如何獲取當(dāng)前日期前后N天的時間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-11-11
  • iOS實現(xiàn)逐幀動畫做loading視圖

    iOS實現(xiàn)逐幀動畫做loading視圖

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)逐幀動畫做loading視圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評論