作者alongalone (要求太仔細會是太過份嗎)
看板MacDev
標題[問題] ARC 開啟之後的記憶體管理
時間Thu Nov 24 11:23:18 2011
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
1F:→ atst2:宣告跟"型別"有關,一定要有. UIxxx不是沒有宣告,而是被 11/24 11:33
2F:→ atst2:宣告在UIKit.h中。Xcode幫你產生的.h檔中已經有引入UIKit 11/24 11:34
3F:→ atst2:的宣告了. 11/24 11:34
4F:→ alongalone:原來如此;那請教self.myIns 跟 [self myIns]的差異是 ? 11/24 11:41
5F:→ alongalone:我有爬了一下文,還是有點模糊.我覺得兩個還是差不多 11/24 11:41
6F:→ alongalone:自己回答,這兩個是等價的... 11/24 16:57
7F:→ iwayne:不見得等價。self.myIns是呼叫setter,像[self SetmyIns]; 11/24 21:47
8F:→ iwayne:如果你另外在自己類別裏寫個myIns的函式,再試試,就能了解 11/24 21:48
9F:→ alongalone:謝謝樓上的大大....沒錯是等同於 setter的method.. 11/24 22:25
10F:→ atst2:self.myIns == [self setMyIns:object] || [self myIns] 11/24 23:28
11F:→ atst2:也就是說,依狀況不同,會有不同的意思 11/24 23:28
12F:→ atst2:如果是self.myIns = Ins;時,相當於Setter; 11/24 23:29
13F:→ atst2:但Ins = self.myIns; 時,相當於Getter. 11/24 23:29
14F:→ alongalone:原來是這樣..Orz,那我想簡單一點的話,就當作是變數操作 11/24 23:49
16F:→ alongalone:重點是適合beginner的,英文還滿簡單讀的 11/25 11:07