id obj = [NSArray array]; // 取得非自己生成并持有的對象 [obj retain];
釋放方式:
1、賦其他值 2、超出作用域
所有權(quán)修飾符
_ _strong id類型和對象類型默認(rèn)在超出變量作用域后被釋放_ _weak
解決循環(huán)引用問題(易發(fā)生互相強(qiáng)引用)當(dāng)引用計(jì)數(shù)為0時(shí),自動賦值nil必須是oc對象(assign可以非oc對象)weak被賦以一個(gè)非自己生成的對象,weak并不會立即釋放,而是注冊到AutoreleasePool中,延長生命周期。不持有對象??與assign的區(qū)別 assign是指針賦值,不對引用計(jì)數(shù)操作,使用之后如果沒有置為nil,可能產(chǎn)生野指針。而weak一旦不適用,自動賦值nil。_ _ unsafe_unretained
_ _autoreleasingself.proprety = [[NSObject alloc] init]; //init的時(shí)候retainCount+1 , 賦值的時(shí)候retainCount+1,但autoreleasepool只減1 新聞熱點(diǎn)
疑難解答