weak:在MRC是沒有weak的,在ARC中,weak用于修飾對(duì)象,計(jì)數(shù)不變,不引用后為nil。
assign:在MRC和ARC都是修飾基本數(shù)據(jù)類型,計(jì)數(shù)不變,釋放后不為nil,再引用會(huì)發(fā)生錯(cuò)誤。
__block:允許在塊內(nèi)修改塊外的變量,可以修飾對(duì)象和基本數(shù)據(jù)類型,是強(qiáng)引用。
__weak:只能在ARC 使用,只能修飾對(duì)象,不能修飾基本數(shù)據(jù)類型,不可以重新賦值。
__weak __typeof(&*self)weakSelf =self; ?//self轉(zhuǎn)換成_weak,避免循環(huán)引用