作者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