總結 OC記憶體管理 2

2021-06-28 19:32:54 字數 834 閱讀 1766

上篇文章對記憶體管理進行了概括性描述,本篇文章將對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等 無效 ...