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

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

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

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

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

  1. -init  
  2. -initWithNibName:bundle: 

這兩個方法都是初始化一個 vc,但請注意 view 不是這時候載入的

  1. -loadView  
  2. -viewDidLoad 

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

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

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

這幾個方法就不解釋了

  1. -viewDidUnload 

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

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

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

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

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

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

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

2017-03-07 10:15:35

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

2018-07-23 09:26:08

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

2011-08-22 11:07:16

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

2017-02-09 21:24:22

iOS內(nèi)存管理

2016-04-11 09:30:49

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

2011-09-01 10:42:14

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

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

2011-08-17 16:23:31

iPhone開發(fā)UIViewContr

2011-08-02 10:50:56

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

2013-12-17 15:46:04

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

2012-02-01 13:57:40

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

2015-06-25 09:47:20

iOS內(nèi)存管理

2014-03-12 09:37:22

內(nèi)存管理autoreleaseautorelease

2011-07-21 17:40:43

iOS 多核 內(nèi)存

2011-08-05 16:41:48

iOS 隊列 內(nèi)存

2016-03-03 10:07:39

ios內(nèi)存管理面試總結(jié)

2011-07-26 15:14:24

蘋果 Cocoa 內(nèi)存

2017-06-30 15:58:07

Android開發(fā)內(nèi)存
點贊
收藏

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