Block中避免循環(huán)引用方式
第一種也是大家最常用的?
這種寫法在block 未執(zhí)行完成時(shí)候可能引用對(duì)象釋棚愤,導(dǎo)致錯(cuò)誤發(fā)生崔拥。
第二種是用__block 修飾 指針 強(qiáng)行將指針?lè)湃攵褏^(qū)彩匕,
這種法在要做事情結(jié)束時(shí)候必須手動(dòng)釋放變量ws ?财松,如圖釋放位置也會(huì)產(chǎn)生問(wèn)題辽聊,可以在gcd方法內(nèi)釋放痴脾。缺點(diǎn)是如果不執(zhí)行block self 依然永遠(yuǎn)不會(huì)釋放掉颤介。
第三種是在block 開(kāi)始執(zhí)行時(shí)候強(qiáng)引用對(duì)象,執(zhí)行完成后釋放掉赞赖。
這種即使不執(zhí)行block也不會(huì)產(chǎn)生循環(huán)問(wèn)題滚朵,一旦開(kāi)始執(zhí)行block就回強(qiáng)引用對(duì)象,執(zhí)行結(jié)束釋放掉前域。
第四種是將self 以一個(gè)參數(shù)形式傳入block辕近,不執(zhí)行block不會(huì)有問(wèn)題,開(kāi)始執(zhí)行后強(qiáng)引用匿垄,執(zhí)行完畢釋放亏推。