偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iOS開發(fā) UIViewController內(nèi)存管理

移動(dòng)開發(fā) iOS
本文介紹的是iOS開發(fā) UIViewController內(nèi)存管理,在 iOS 3.0 后,UIViewController 多了一個(gè)叫做 viewDidUnLoad 的方法,我們先來看內(nèi)容。

iOS開發(fā) UIViewController內(nèi)存管理是本文要介紹的內(nèi)容,在 iOS 3.0 后,UIViewController 多了一個(gè)叫做 viewDidUnLoad 的方法。不少人都不清楚這個(gè)方法的具體意義,蘋果的文檔也就一句 ”Called when the controller’s view is released from memory” 簡(jiǎn)單的解釋了下,并要求你把 IBOutlet 綁定的視圖給清空,為什么呢?

先看下 UIViewController 從創(chuàng)建 view 到展示的流程的幾個(gè)函數(shù)

  1. -init  
  2. -initWithNibName:bundle: 

這兩個(gè)方法都是初始化一個(gè) vc,但請(qǐng)注意 view 不是這時(shí)候載入的

  1. -loadView  
  2. -viewDidLoad 

當(dāng)一個(gè)視圖準(zhǔn)備展現(xiàn)時(shí),vc 首先會(huì)判斷 view 是否已經(jīng)創(chuàng)建否則便通過之前指定的 xib 文件來初始化 view,以及綁定其他關(guān)系(若沒有指定 xib 文件,則默認(rèn)會(huì)搜索和 vc 同名的 xib,比如 myNameViewController 就會(huì)搜索 myNameViewController.xib 文件)

若是沒有 xib 文件,你就可以在 loadview 中自己手動(dòng)創(chuàng)建這個(gè) viewControoler 需要的視圖。接下來就是調(diào)用到 -viewDidLoad,許多人喜歡在這里做些其他事情,比如做個(gè) http 請(qǐng)求、建立個(gè)數(shù)組啥的。這里若不處理正確,-viewDidUnload 激活時(shí)內(nèi)存就容易泄露了,稍后提到。

  1. -view()appear  
  2.  -view()disappear 

這幾個(gè)方法就不解釋了

  1. -viewDidUnload 

該方法在收到內(nèi)存警告,同時(shí)該視圖并不在當(dāng)前界面顯示時(shí)候會(huì)被調(diào)用,此時(shí)該 controller 的 view 已經(jīng)被釋放并賦值為 nil。

接下來你要做的是把實(shí)例變量的子視圖釋放(IBOulet 的,以及自己添加的) 其他實(shí)例變量,比如之前在 -viewDidLoaded 中實(shí)例的數(shù)據(jù)數(shù)組、http 請(qǐng)求釋放掉

因?yàn)楫?dāng)該 viewController 再次被激活準(zhǔn)備顯示時(shí)(比如 navigationControler 返回到上一級(jí)),vc 發(fā)現(xiàn)自己的 view 為空后會(huì)重復(fù)之前的流程直到把 view 給創(chuàng)建起來。若沒將自己額外添加的子視圖,各種類實(shí)例變量釋放,這里便會(huì)重新再次創(chuàng)建。

于是,內(nèi)存泄露了。

小結(jié):詳解UIViewController 內(nèi)存管理的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。

轉(zhuǎn)自 http://ixhan.com/2011/02/uiviewcontroller-memory-manage/

責(zé)任編輯:zhaolei 來源: Cocoa China
相關(guān)推薦

2018-07-23 09:26:08

iOS內(nèi)存優(yōu)化

2017-03-07 10:15:35

iOS內(nèi)存管理開發(fā)

2011-08-22 11:07:16

IOS 開發(fā)多核內(nèi)存

2011-09-01 10:42:14

Objective-CCocoa內(nèi)存管理

2017-02-09 21:24:22

iOS內(nèi)存管理

2016-04-11 09:30:49

內(nèi)存管理ios開發(fā)

2015-03-13 09:30:23

iOS內(nèi)存管理

2012-01-18 14:14:29

iOS教程iOS5

2014-07-31 10:48:09

Android內(nèi)存管理OOM

2015-06-25 09:47:20

iOS內(nèi)存管理

2011-08-17 16:23:31

iPhone開發(fā)UIViewContr

2012-02-01 13:57:40

內(nèi)存緩存機(jī)制

2013-12-17 15:46:04

iOS開發(fā)iOS 內(nèi)存泄漏

2011-08-02 10:50:56

iOS開發(fā) 內(nèi)存緩存

2014-03-12 09:37:22

內(nèi)存管理autoreleaseautorelease

2011-07-26 15:14:24

蘋果 Cocoa 內(nèi)存

2017-06-30 15:58:07

Android開發(fā)內(nèi)存

2011-07-21 17:40:43

iOS 多核 內(nèi)存

2011-08-05 16:41:48

iOS 隊(duì)列 內(nèi)存

2016-03-03 10:07:39

ios內(nèi)存管理面試總結(jié)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)