第九天1007第七課內(nèi)存管理_第1頁
第九天1007第七課內(nèi)存管理_第2頁
第九天1007第七課內(nèi)存管理_第3頁
第九天1007第七課內(nèi)存管理_第4頁
第九天1007第七課內(nèi)存管理_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

和iPad軟件開發(fā)培訓(xùn)機(jī)構(gòu),到目前為我們也在當(dāng)天陸續(xù)發(fā)布國內(nèi)首套完整的iOS開發(fā)的,手把您寫代碼,從到熟練再到精通。最好的肯定,也是我們前進(jìn)的最動力,我們感謝的努力,感謝對我們的支持!我們也將免費為提供最好的就業(yè)后的技術(shù)支持!,的高薪就業(yè)才是我們最大的成功:無限互聯(lián)3G學(xué)院第七課內(nèi)存管理:無限互聯(lián)3G學(xué)院@property的使用:無限互聯(lián)3G學(xué)院

intintmain(intargc,constchar*{intvalue=Dog*dog=[dogsetName:@"大黃returnalloc]}:無限互聯(lián)3G學(xué)院·OC中的內(nèi)存管理只針對OC中的對象,所有的對象都繼承NSObject·:無限互聯(lián)3G學(xué)院

:無限互聯(lián)3G學(xué)院所有OC的對象都有一個計數(shù)器,這個計數(shù)器我們稱 計數(shù) :無限互聯(lián)3G學(xué)院 計數(shù),表示當(dāng)前對象 的數(shù)量 0:無限互聯(lián)3G學(xué)院alloc、retain、release ·retain :無限互聯(lián)3G學(xué)院retain、release示例*=allocinit];//計數(shù)為[retain];//計數(shù)為2 [retain];//計數(shù)為3 [release];//計數(shù)為2 [release];//計數(shù)為1 [*=allocinit];//計數(shù)為:無限互聯(lián)3G學(xué)院 1:無限互聯(lián)3G學(xué)院(ownership) :無限互聯(lián)3G學(xué)院:無限互聯(lián)3G學(xué)院·如果對一個對象使用了那么你必須使用相應(yīng)的release或者autorelease:無限互聯(lián)3G學(xué)院

:無限互聯(lián)3G學(xué)院-(void)setDog:(Dog*)dog{if(_dog!=dog){[dog[_dog[dog_dog}}(id)initWithDog:(Dog{self=[superif(self!=nil)_dog=[dog}return}:無限互聯(lián)3G學(xué)院dealloc方法 [_dog[_dog[_car[super-(void)dealloc }}調(diào)用[superdealloc]是為了釋放父類持有的對象 :無限互聯(lián)3G學(xué)院課堂練習(xí)完 和Dog的對象 的練習(xí)定義汽車Car,引擎(Engine),汽車持有引擎的對象所?:無限互聯(lián)3G學(xué)院@property的使用@interfaceUser:NSObjectintNSStringNSStringNSString*_password;NSString*_ NSString*_birthday;NSString}}-(void)setUserName:(NSString*)nameif(_userName!=name){[_userNamerelease];_userName=[name}}set-(NSString*)userNamereturn}:無限互聯(lián)3G學(xué)院@property的使用@propertyset和get@interfaceUser://NSString}{//用戶名稱NSStringset:無限互聯(lián)3G學(xué)院@property的使用33 @property(nonatomic,retain,readwrite)NSString1·1·atomic: ·nonatomic:多線程環(huán)境下,不存程保護(hù)22·copy:拷貝對象33·readonly:只生成getter:無限互聯(lián)3G學(xué)院@property的使用_userName=·_userName=-(void)setUserName:(NSString*)name}_userName_userName=[name-(void)setUserName:(NSString*)nameif(_userName!=name){[_userNamerelease];}}_userName=_userName=[name:無限互聯(lián)3G學(xué)院-(void)setUserName:(NSString*)nameif(_userName!=name)[_userName}}@property的使用@propertyset和get:無限互聯(lián)3G學(xué)院 和iPad軟件開發(fā)培訓(xùn)機(jī)構(gòu),到目前為我們也在當(dāng)天陸續(xù)發(fā)布國內(nèi)首套完整的iOS開發(fā)的,手把您寫代碼,從到熟練再到精通。最好的肯定,也是我們前進(jìn)的最動力,我們感謝的努力,感謝對我們的支持!我們也將免費為提供最好的就業(yè)后的技術(shù)支持!,的高薪就業(yè)才是我們最大的成功:無限互聯(lián)3G學(xué)院NSMutableArrayNSMutableArray*array=[NSMutableArrayarray];Dog*dog1=[[Dogalloc]init];Dog*dog2=[[Dogalloc][array[array[dog1[dog2 :無限互聯(lián)3G學(xué)院·數(shù)組銷毀或者removeAllObjects,會給每一個元素發(fā)送release消息[array[array:無限互聯(lián)3G學(xué)院 :無限互聯(lián)3G學(xué)院2211210121:無限互聯(lián)3G學(xué)院NSAutoreleasePoolNSAutoreleasePool*pool[[NSAutoreleasePoolalloc]User*user=[[Useralloc]//加入自動釋放[user//自動釋放池釋[pool//新語法創(chuàng)建自動釋放@autoreleasepoolUser*user=[[Useralloc]//加入自動釋放[user}:無限互聯(lián)3G學(xué)院 123123 :無限互聯(lián)3G學(xué)院·NSAutoreleasePool =NSAutoreleasePool

=[[NSAutoreleasePoolalloc]init];alloc]init];NSAutoreleasePool=[[NSAutoreleasePoolalloc]NSAutoreleasePoolDog*dog=[[Dogalloc][dog[pool2[pool1:無限互聯(lián)3G學(xué)院 [setDog:[[[setDog:[[Dog//這里不能[dog//這里不能[dogDog*dog=[[[Dogalloc]init] :無限互聯(lián)3G學(xué)院 -(NSString*)getInfoNSString-(NSString*)getInfoNSString*info=[[NSString[inforeturn[info}[infoStringNSString*infoString=[infoString:無限互聯(lián)3G學(xué)院[info[info--(NSString*)getInfoNSString*info=[[NSString}}NSAutoreleasePoolNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]NSString*infoString= getInfo]; [pool[poolrelease自動釋放池銷毀的時候,會調(diào)用infoString的

NSAutoreleasePoolNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]for(inti=0; ;i++)if(i%1000==0)[poolpool=[[NSAutoreleasePoolalloc]}NSMutableArray*array=[[NSMutableArrayalloc][array}也就是累計不會超過1000個對象。:無限互聯(lián)3G學(xué)院·Foundation中的類可以通過alloc創(chuàng)建和類方法創(chuàng)建·NSArray*array=[[NSArrayalloc][arrayNSArray*array=[NSArray//這里不能[array:無限互聯(lián)3G學(xué)院++(Dog*)dogDog*dog=[[Dogalloc]init];return[dogautorelease];}DogDog*dog=[Dog//這里不能[dog[:無限互聯(lián)3G學(xué)院 NSArrayNSArray*array=NSNumberNSNumber*number=:無限互聯(lián)3G學(xué)院常見錯誤//+{*=alloc][;}//+ = alloc]returnreturn}:無限互聯(lián)3G學(xué)院++(void)descriptionNSString*name=[NSStringstringWithFormat:@"jack"];[namerelease];NSLog(@"name:%@",}+(void)descriptionNSString*name=[NSStringstringWithFormat:@"jack"];NSLog(@"name:%@",name);}:無限互聯(lián)3G學(xué)院LaptopLaptop*laptop=[[Laptopalloc]init];=[NSStringstringWithFormat:@"apple"];NSArray*array=[NSArrayarrayWithObject:laptop];[arrayLaptop*laptop=[[Laptopalloc]init];=[NSStringstringWithFormat:@"apple"];NSArray*array=[NSArray[laptop:無限互聯(lián)3G學(xué)院常見錯誤////錯-(void)memoryCar*car=[[Caralloc]init];if(gas==0){}//省略代碼[car}////正-(void)memoryCar*car=[[[Caralloc]init]if(gas==0){}//省略代碼}:無限互聯(lián)3G學(xué)院AR·ARC自動 計數(shù)(automaticreferencecounting),提供自動管理內(nèi)存的功持·不意版本 iS et5release、持:無限互聯(lián)3G學(xué)院循環(huán)·對象Aretain對象B。同時對象Bretain對象A·循 AAB:無限互聯(lián)3G學(xué)院--(void)setA:(A*)aif(_a!=a){[_arelease];_a=[a}}--(void)setB:(B*)b{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論