OC的ARC(自動記憶體管理)注意事項

2021-07-04 23:17:44 字數 1324 閱讀 1968

記憶體管理原則(配對原則):只要出現了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...