iOS weak-strong dance

前言:打印retainCount? ??

打印retainCount?

eg:在block內(nèi)部使用self不提示循環(huán)引用??(self !->testBlock->self)(這種情況block外部和內(nèi)部self的引用計(jì)數(shù)相同)

在block內(nèi)部使用self不提示循環(huán)引用??

1、在block內(nèi)部使用self提示循環(huán)引用??(self->testBlock->self)

1、在block內(nèi)部使用self提示循環(huán)引用

2蜂怎、使用(__weak typeof(self) weakSelf = self;)解除??(這時(shí)block內(nèi)部weakSelf比和self的引用計(jì)數(shù)+1菇存,但是內(nèi)部不強(qiáng)引用self习柠,不構(gòu)成循環(huán)引用)(問題:如果self在block內(nèi)部使用之前銷毀(不被持有)芳来,weakSelf的生命周期和self是一樣的梆暮,導(dǎo)致weakSelf也銷毀)(將強(qiáng)引用的對(duì)象轉(zhuǎn)為弱引用指針捉超,防止了 Block 和對(duì)象之間的循環(huán)引用)

2胧卤、解除??(先將強(qiáng)引用的對(duì)象轉(zhuǎn)為弱引用指針,防止了 Block 和對(duì)象之間的循環(huán)引用)

3拼岳、使用(__strongtypeof(weakSelf) strongSelf = weakSelf;)(這時(shí)block內(nèi)部在這行代碼前weakSelf比和self的引用計(jì)數(shù)+1枝誊,之后weakSelf比和self的引用計(jì)數(shù)+2,strongSelf和self引用計(jì)數(shù)一樣)(將weakSelf 的弱引用轉(zhuǎn)換成 strongSelf 這樣的強(qiáng)引用指針惜纸,防止了多線程和 ARC 環(huán)境下弱引用隨時(shí)被釋放的問題)

(將weakSelf 的弱引用轉(zhuǎn)換成 strongSelf 這樣的強(qiáng)引用指針叶撒,防止了多線程和 ARC 環(huán)境下弱引用隨時(shí)被釋放的問題)

注意??:

一绝骚、weakSelf 位于 Block 的外面,strongSelf 位于 Block 的里面祠够。從內(nèi)存管理的角度來看压汪,weakSelf 是要比 strongSelf 的聲明周期要長(zhǎng)的。這樣就形成了從弱引用到強(qiáng)引用古瓤,再從強(qiáng)引用到弱引用的一種變化止剖,也稱作 weak-strong dance。

二落君、之所以在Block的代碼執(zhí)行之前加上這樣一個(gè)非nil判斷穿香,是為了防止在把 weakSelf 轉(zhuǎn)換成 strongSelf 之前 weakSelf 就已經(jīng)為 nil 了,這樣才能確保萬無一失绎速。

防止在把 weakSelf 轉(zhuǎn)換成 strongSelf 之前 weakSelf 就已經(jīng)為 nil 了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扔水,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子朝氓,更是在濱河造成了極大的恐慌魔市,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赵哲,死亡現(xiàn)場(chǎng)離奇詭異待德,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枫夺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門将宪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人橡庞,你說我怎么就攤上這事较坛。” “怎么了扒最?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵丑勤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我吧趣,道長(zhǎng)法竞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任强挫,我火速辦了婚禮岔霸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俯渤。我一直安慰自己呆细,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布八匠。 她就那樣靜靜地躺著絮爷,像睡著了一般诡曙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上略水,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天价卤,我揣著相機(jī)與錄音,去河邊找鬼渊涝。 笑死慎璧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跨释。 我是一名探鬼主播胸私,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鳖谈!你這毒婦竟也來了岁疼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤缆娃,失蹤者是張志新(化名)和其女友劉穎捷绒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贯要,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡暖侨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崇渗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片字逗。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宅广,靈堂內(nèi)的尸體忽然破棺而出葫掉,到底是詐尸還是另有隱情,我是刑警寧澤跟狱,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布俭厚,位于F島的核電站,受9級(jí)特大地震影響兽肤,放射性物質(zhì)發(fā)生泄漏套腹。R本人自食惡果不足惜绪抛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一资铡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幢码,春花似錦笤休、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽政基。三九已至,卻和暖如春闹啦,著一層夾襖步出監(jiān)牢的瞬間沮明,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工窍奋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荐健,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓琳袄,卻偏偏與公主長(zhǎng)得像江场,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窖逗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 絕大多數(shù)iOS開發(fā)者用過block碎紊,并且知道用 __weak 的方式去解決循環(huán)引用的問題佑附。而進(jìn)階一些的開發(fā)者則了解...
    kuailejim閱讀 6,452評(píng)論 18 91
  • weak-strong dance 簡(jiǎn)介 使用 Block 時(shí)可以通過__weak來避免循環(huán)引用已經(jīng)是眾所周知的事...
    Sheepy閱讀 6,827評(píng)論 23 57
  • 下文的討論基于ARC 平時(shí)開發(fā)中我們遇到block里面引用self的情況帮匾,大部分都是這樣處理的 轉(zhuǎn)載請(qǐng)注明出處:來...
    LeonLei閱讀 927評(píng)論 3 3
  • 最近在"翻新"公司的老項(xiàng)目的時(shí)候瘟斜,發(fā)現(xiàn)一個(gè)奇怪的問題: 在一個(gè) block 中,我使用了 RAC 為了避免 blo...
    kikido閱讀 624評(píng)論 0 3
  • 今天感恩節(jié)哎痪寻,感謝一直在我身邊的親朋好友螺句。感恩相遇!感恩不離不棄橡类。 中午開了第一次的黨會(huì)蛇尚,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,559評(píng)論 0 11