上篇文章對記憶體管理進行了概括性描述,本篇文章將對retain方法和release方法的具體使用場景做出描述
被遺忘一次,計數器-1(release方法)被遺忘分為兩種:主動遺忘和被動遺忘
方式一:呼叫者有了新物件,故意遺忘掉老物件
示例 乙個person有了新wife:
- (void)setwife:(girl *)wife
}
簡寫方法
@property (nonatomic,retain) girl *wife;方式二:呼叫者使命完成了,程式猿在main中手動釋放它
示例
int main()
// 2.採用重寫的方法建立物件,並將物件置於自動釋放池中
int main()
return
0;}
呼叫者自身消亡了,不得已遺忘。
示例:
乙個person死掉了,他不得不放棄掉了自己的錢:
- (void)dealloc
物件每被呼叫一次,計數器+1(retain方法)即:當把物件b附給物件a時,需要給物件b使用retain方法,將其計數+1
示例:
仍用wife的例子:
- (void)setwife:(girl *)wife
}
OC語法 2 2 記憶體管理 手動記憶體管理2
五 copy語法 這篇建議學過foundation框架之後再學習 本小節知識點 基本用法 1 乙個物件可以使用 copy 或者mutablecopy 方法來建立物件的副本,當我們操作副本的時候不影響原物件 2 copy 需要先實現 nscopying 協議,建立的是不可變副本 如 nsstring,...
Oc 記憶體管理
1 對你自己擁有的物件負責,你只能釋放你擁有的物件 2 凡是你通過 retain alloc copy等手段獲得了所有者的物件,都必須在你不使用的時候來呼叫release autorelease等手段來釋放對他的所有權 3 在一定的 段內,對同乙個物件所作的copy alloc retain的操作次...
OC記憶體管理
1.記憶體管理原則 如果對乙個物件使用了alloc mutable copy retain,那麼你必須使用相應的release或者autorelease。2.管理範圍 任何繼承了nsobject 的物件,對其他基本資料型別 int char float double struct enum等 無效 ...