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