記憶體管理原則(配對原則):只要出現了new,alloc,retain方法,就要配對出現release,autorelease
物件存入到自動釋放池中,當這個池子被銷毀的時候他會對池子中所有的物件進行一次release操作
怎麼把物件存到池子中
arc簡單,不用程式設計師在去管理記憶體
1.強指標 strong
2.弱指標 weak
只要有強指標指向乙個物件,那麼系統就不會**該物件
只要沒有強指標指向物件,系統立即**該物件
弱指標不影響,物件被**
預設情況下,所有的指標都是強指標型別
基本結構(可巢狀)
person * p = [[person alloc] init];
@autoreleasepool //[p release] 0
}//[p release];
示例
/* 示例1
//自動釋放池
//大括號代表池子的作用域
@autoreleasepool
//代表,池子將要被銷毀,對池子中所有的物件進行一次release操作,[p release] 0
*//*
//autoreleasepool我麼可以自己隨意的建立
// 示例2
//1//不管你這個物件時在@autoreleasepool 之內置立的還是在之外建立的,只要你在池子中呼叫了autorelease那麼這個物件就會被放入到池子中
person * p = [[person alloc ] init];
@autoreleasepool //p 0
*/// 示例3
/*//1 只有在自動釋放池的作用域中呼叫物件的autorelease方法才能夠正確的講物件放入到池子中
person * p = [[person alloc] init];
[p autorelease];
nslog(@"aaaa");
@autoreleasepool
nslog(@"bbb");
*///示例4
/*// 1
person * p = [[person alloc] init];
@autoreleasepool //[p release]0 [p release]
nslog(@"cbd");
*///示例5
/*//1
person * p = [[person alloc] init];
@autoreleasepool //?[p release] 0
}*/
OC記憶體管理之ARC
除了特殊場合,使用arc是大勢所趨。因為這不僅能夠提高程式設計師的開發效率,讓程式設計師把精力專注在功能實現上,也大大節約了專案的開發成本,更提高了程式的可維護性。1.使用arc的重要關注點就是 物件是否有強指標指向,沒有強指標指向的物件會被系統自動 2.property關鍵字 強指標用strong...
OC的記憶體管理 二 ARC
指標 指向記憶體的位址 指標變數 存放位址的變數 指標變數值 變數中存放的值 位址值 指標變數指向的記憶體單元值 記憶體位址指向的值 1 強指標 預設的情況下,所有的指標都是強指標,關鍵字strong 2 弱指標 weak關鍵字修飾的指標 宣告乙個弱指標的格式 weak person p arc概念...
OC中記憶體管理 ARC 注意點及單個物件處理
2019獨角獸企業重金招聘python工程師標準 第一 知道乙個專案是arc的還是mrc的,除了專案設定裡可以看,還有一點就是 arc是允許寫一些mrc的retain與release包括autorelease的。第二 了解兩個概念,強指標與弱指標 person p person alloc init...