国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

IOS開(kāi)發(fā)--第四階段--內(nèi)存管理

2019-11-14 19:22:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

深拷貝與淺拷貝

 

只有實(shí)現(xiàn)了NSCoping協(xié)議的對(duì)象才能進(jìn)行copy,自定義對(duì)象的copy需要實(shí)現(xiàn)NSCopy協(xié)議,具體是深拷貝還是淺拷貝取決于協(xié)議如何實(shí)現(xiàn)

 

copy得到的類型一定是不可變的;mutableCopy得到的類型一定是可變的

淺拷貝:拷貝過(guò)后內(nèi)存地址(指針)沒(méi)有改變;

深拷貝:拷貝過(guò)后內(nèi)存地址(指針)發(fā)生改變;

不可變的類型進(jìn)行不可變的拷貝是淺拷貝,其他都是深拷貝;只要見(jiàn)到mutable,都是深拷貝(不管是拷貝類型還是拷貝方法);

 

1)NSString: copy   淺拷貝 ,   拷貝過(guò)后為  NSString   不可變;

                    mutableCopy  深拷貝,    拷貝過(guò)后為 NSMutableString  可變;

2)NSMutableString: copy   深拷貝  ,    拷貝過(guò)后為  NSString   不可變;

                                mutableCopy  深拷貝 ,   拷貝過(guò)后為 NSMutableString  可變;

(NSArray,   NAMutableArray)  (NSDictionary,  NSMutableDictionary)  NSSet(集合)同上類似

3)copy時(shí)順便會(huì)附帶一個(gè)Strong

4)@autoreleasepool{} 自動(dòng)釋放池; for循環(huán)創(chuàng)建一個(gè)對(duì)象就釋放一個(gè)對(duì)象

5)NSAutoreleasepool *pool = [NSAutoreleasepool  alloc] init];

 

注意:

錯(cuò)誤代碼@PRoperty ( nonatomic,copy)NSMutableArray * mutableArray;

運(yùn)用該種寫(xiě)法時(shí)必須重寫(xiě)其set放法;

正確寫(xiě)法@property ( nonatomic,retain)NSMutableArray * mutableArray;

 

ARC

ARC中[super delloc]方法已不能調(diào)用,但delloc方法依然有效,所以依然可以 [[NSNotificationCenter defaultCenter] removeObser:self];

 

Strong,Weak

1)Strong為強(qiáng)引用,Strong指針指向的對(duì)象永不釋放,沒(méi)有strong指針指向它時(shí),它會(huì)立即釋放;

2)weak是弱應(yīng)用,當(dāng)其對(duì)象被釋放時(shí)自動(dòng)置為空;沒(méi)有Strong和weak指針修飾的對(duì)象默認(rèn)為_(kāi)_strong;

3)在ARC中@property retain的對(duì)象在編譯是會(huì)自動(dòng)編譯為Strong

4)strong,weak不修飾簡(jiǎn)單類型,簡(jiǎn)單類型用assgin 或  unsafe_unretained 

5)在ARC的block中,之前為防止循環(huán)引用用__block,現(xiàn)在用weak;

 

在ARC環(huán)境下添加非ARC文件:-fno- objc-arc

在非ARC環(huán)境下添加ARC文件:-fobjc-arc

 

拓展:

轉(zhuǎn)換, 橋接

1).m                OC和 C 可以直接混編;

2).m--->.mm   OC與C ,C++混編時(shí);

3) .cpp             C和C++混編,不與OC混編 ;

4)__bridge_retained      OC--->C    轉(zhuǎn)換的時(shí)候會(huì)retain一次;(用于全局的方法,且方法必須是在.h中聲明過(guò)的方法);

5)__bridge_transfer       C--->OC    轉(zhuǎn)換的時(shí)候會(huì)release一次;

6)__bridge                    C<--->OC 相互轉(zhuǎn)換時(shí)引用計(jì)數(shù)不產(chǎn)生任何更改;(用于局部的方法,且方法必須是在.h中聲明過(guò)的方法);

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞金市| 抚松县| 汉中市| 罗甸县| 太康县| 罗山县| 富民县| 依安县| 富平县| 平塘县| 息烽县| 清徐县| 龙岩市| 铁岭市| 滕州市| 奇台县| 吴桥县| 伊通| 文登市| 赤水市| 长治市| 建瓯市| 金昌市| 鄂伦春自治旗| 连云港市| 晋州市| 铁岭市| 方正县| 将乐县| 正阳县| 南部县| 定结县| 合山市| 钟山县| 黄陵县| 河间市| 康平县| 高州市| 岫岩| 土默特右旗| 格尔木市|