MRC的開發原則

2021-07-10 11:30:31 字數 901 閱讀 2925

1. 誰申請,誰釋放 適用於物件導向開發的原則

2.如果有alloc,copy,retain需要做對應的release

3.如果有copy, retain(在arc中就是strong)的屬性,需要在dealloc中進行釋放

- (void)dealloc

4.在mrc中如果要重寫屬性的setter方法,需要按照以下格式

- (void)setname:(nsstring *)name }5.

知識點補充,乙個疑惑:

給屬性設定數值的時候,使用self

.name,可以呼叫系統預設的setter方法,從而能夠保證retain是正確的!

* 什麼時候使用 _name,什麼時候使用

self.name?

# 第一次給屬性內容設定數值的時候,建議使用_name

場景:loadview,viewdidload,前提是沒有寫懶載入方法

# 在dealloc方法中,建議使用

[_name release];    //

可以看清楚平衡關係

也可以使用:

self.name = nil;    //

呼叫setter方法

# 使用_name 的場景,通常是初始化,或者銷毀

6> 如果物件的成員變數在例項化時,使用的是延遲釋放方法(例如類方法)

# 需要手動retain 一次,否則一次執行迴圈結束後,該物件會被釋放掉

7> retaincount 引用計數,表示當前有多少個物件對該物件引用!

很多初學者會喜歡 log retaincount

蘋果官方建議:不推薦大家跟蹤retaincount,因為一物件在真正執行中,

可能會被某乙個框架引用,也有可能會被框架的框架引用,造成retaincount 和預期的不一樣,會造成疑惑!

iOS ARC 和 MRC 混合開發 注意事項

聯絡人 石虎暱稱 嗡嘛呢叭咪哄 arc mrc 混合開發 在專案開發中,遇到使用 mrc開發的第三方庫怎麼辦?例如 asi 1 嘗試使用 xcode 的轉換工具 失敗率比較高 2 在編譯選項中,為 mrc的程式新增 fno objc arc 標記,表明在編譯時,該檔案使用 mrc編譯 備註 1 演示...

iOS開發之oc(十一) 記憶體管理MRC

掌握內容 理解記憶體管理的原理 1.理解部分 1點選工程 build settings 通過gar關鍵字的搜尋搜出automatic re.cou.將此選項的設定改稱no 1.2.2析構函式 可以用來驗證物件是否被釋放 語法 void dealloc void setdog dog dog void...

敏捷開發的原則

一 單一職責原則 the single responsibility principal srp 就是說盡量的單一化類的功能,不要使類具有多個功能。如果類具有多個功能時,任意乙個功能的修改都需要改寫這個類,也就會影響其他的類,而這些類根本沒有使用修改的這個功能。如果單一化功能,這種情況就可以避免。例...