[問題] ARC 開啟之後的記憶體管理

看板MacDev作者 (要求太仔細會是太過份嗎)時間13年前 (2011/11/24 11:23), 編輯推噓0(0016)
留言16則, 3人參與, 最新討論串1/1
ARC 開啟之後, 是不是就可以不用處理記憶體的釋放呢? 看文件都有說到有 alloc 就要自己release該物件. 在ARC的模式之後, release/dealloc 都會被 compiler擋掉. 爬文之後,瞭解到compiler會自動安插 release 的語法. 由於之前用C寫了很久,自己 alloc 卻沒有自己 free 掉的話, 總覺得這樣寫不太好. 還是說可以相信compiler的智慧呢? 另一個是宣告的問題. 在寫 ui 程式的時候, 如果有使用到自己寫的class, 要在interface裡面寫宣告嘛? 還是參考 UIButton 之類的元件,只要寫 @property就好? 我自己的實驗結果是寫宣告, 但是UI的元件可以不用在interface裡面宣告 就可以取得instance呢 ([self mybtn]), 是因為@synthesize 產生的 getter會產生instance嘛? 先謝謝各位的回答了. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.153.31

11/24 11:33, , 1F
宣告跟"型別"有關,一定要有. UIxxx不是沒有宣告,而是被
11/24 11:33, 1F

11/24 11:34, , 2F
宣告在UIKit.h中。Xcode幫你產生的.h檔中已經有引入UIKit
11/24 11:34, 2F

11/24 11:34, , 3F
的宣告了.
11/24 11:34, 3F

11/24 11:41, , 4F
原來如此;那請教self.myIns 跟 [self myIns]的差異是 ?
11/24 11:41, 4F

11/24 11:41, , 5F
我有爬了一下文,還是有點模糊.我覺得兩個還是差不多
11/24 11:41, 5F

11/24 16:57, , 6F
自己回答,這兩個是等價的...
11/24 16:57, 6F

11/24 21:47, , 7F
不見得等價。self.myIns是呼叫setter,像[self SetmyIns];
11/24 21:47, 7F

11/24 21:48, , 8F
如果你另外在自己類別裏寫個myIns的函式,再試試,就能了解
11/24 21:48, 8F

11/24 22:25, , 9F
謝謝樓上的大大....沒錯是等同於 setter的method..
11/24 22:25, 9F

11/24 23:28, , 10F
self.myIns == [self setMyIns:object] || [self myIns]
11/24 23:28, 10F

11/24 23:28, , 11F
也就是說,依狀況不同,會有不同的意思
11/24 23:28, 11F

11/24 23:29, , 12F
如果是self.myIns = Ins;時,相當於Setter;
11/24 23:29, 12F

11/24 23:29, , 13F
但Ins = self.myIns; 時,相當於Getter.
11/24 23:29, 13F

11/24 23:49, , 14F
原來是這樣..Orz,那我想簡單一點的話,就當作是變數操作
11/24 23:49, 14F

11/25 11:06, , 15F
http://tinyurl.com/83rh7gz 講解ARC的細節
11/25 11:06, 15F

11/25 11:07, , 16F
重點是適合beginner的,英文還滿簡單讀的
11/25 11:07, 16F
文章代碼(AID): #1EpRYe1s (MacDev)
文章代碼(AID): #1EpRYe1s (MacDev)