ios開發(fā)弱引用 ios弱引用實(shí)現(xiàn)原理

iOS開發(fā)中的循環(huán)引用

可以用weak修飾delegate。NSTimer 1首先我們聲明timer的時(shí)候,使用strong修飾的,self對(duì)timer進(jìn)行的強(qiáng)引用,如下 2創(chuàng)建timer時(shí),target對(duì)self又進(jìn)行了強(qiáng)引用 至此,循環(huán)引用已經(jīng)形成。

在鹽湖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站建設(shè),外貿(mào)營銷網(wǎng)站建設(shè),鹽湖網(wǎng)站建設(shè)費(fèi)用合理。

修飾對(duì)象不會(huì)增加其引用計(jì)數(shù),避免了循環(huán)引用。 如果被修飾的對(duì)象在某一時(shí)機(jī)被釋放,會(huì)產(chǎn)生 懸垂指針 ,再通過這個(gè)指針去訪問原對(duì)象的話,會(huì)導(dǎo)致內(nèi)存泄露,所以一般不建議用,__unsafe_unretained去解除循環(huán)引用。

在iOS開發(fā)中,循環(huán)引用常常發(fā)生在使用Block、Delegate和通知等機(jī)制時(shí)。為了避免循環(huán)引用,可以使用weak、strong和copy等關(guān)鍵字來修飾對(duì)象,明確表達(dá)對(duì)象之間的擁有關(guān)系。

NSNotificationCenter使用總結(jié)

1、) 這個(gè)方法會(huì)返回一個(gè) NSObserver 對(duì)象,這個(gè)對(duì)象被系統(tǒng)強(qiáng)持有,調(diào)用者需要持有這個(gè)對(duì)象,用于停止通知移除觀察者時(shí)使用。

2、NSNotificationCenter 是類似一個(gè)廣播中心站,使用 defaultCenter 來獲取應(yīng)用中的通知中心,它可以向應(yīng)用任何地方發(fā)送和接收通知。

3、方法三 使用userInfo 傳遞消息 1。

IOS中Retain和Copy的區(qū)別

1、同,這個(gè)對(duì)象的 retain 值+1 assign 地址還是0x1111,內(nèi)容也還是“ABC”。也就是說,retain 是指針拷貝,copy 是內(nèi)容拷貝。strong,weak 用來修飾屬性。

2、retain:引用計(jì)數(shù)器+1,指向同一地址。結(jié)果和淺拷貝一樣,僅僅是使得對(duì)象的引用計(jì)數(shù)器自增copy:對(duì)不可變對(duì)象等同與retain,指針拷貝,引用計(jì)數(shù)器+1。對(duì)可變對(duì)象執(zhí)行深拷貝,等同mutableCopy,內(nèi)容拷貝。

3、也就是說,retain是指針拷貝,copy是內(nèi)容拷貝。

4、retain: 針對(duì)于對(duì)象類型,setter方法對(duì)參數(shù)進(jìn)行release舊值,再retain新值。

關(guān)于iOS基本屬性修飾符的理解(weak篇)

在 Student 類中添加分別由 strong 、 copy 、 weak 修飾的屬性:在通過 Clang 編譯后的 .cpp 文件中,看到會(huì)生成三個(gè)對(duì)應(yīng)的 setter 方法:唯獨(dú)在 setAge 的方法調(diào)用中,是通過 objc_setProperty 方法實(shí)現(xiàn)的。

assign assign主要用來修飾基本數(shù)據(jù)類型,例如int,float,NSInteger,CGFloat,儲(chǔ)存在棧中內(nèi)存不需要管理,一般不修飾對(duì)象,不然對(duì)象內(nèi)存地址被釋放,但是指針不會(huì)釋放就會(huì)造成野指針。

Weak+Controller是一種模式設(shè)計(jì)模式,簡稱WC模式。主要用于分離組件操作邏輯和組件控制邏輯。其中Weak表示要訪問的操作邏輯組件,它不會(huì)調(diào)用任何其它的代碼。

ARC的修飾符 ARC主要提供了4種修飾符,他們分別是:__strong,__weak,__autoreleasing,__unsafe_unretained。__strong 表示引用為強(qiáng)引用。對(duì)應(yīng)在定義property時(shí)的strong。

當(dāng)前標(biāo)題:ios開發(fā)弱引用 ios弱引用實(shí)現(xiàn)原理
本文地址:http://muchs.cn/article13/dihiigs.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、小程序開發(fā)、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)