作者zonble (zonble)
看板MacDev
标题Re: [问题] property/synthesize之後...
时间Sat Jan 2 23:28:26 2010
※ 引述《zonble (zonble)》之铭言:
: 推 leondemon:所以Z大师认为用setA:nil来取代A release比较好吗? 01/01 17:42
什麽大师,我写程式也没有几年 @_@
状况是这样-setA: 是一个 setter,retain、release 是 ObjC
物件的记忆体管理,这两者之间不是哪个比较好的问题,而是你
要做什麽事情。
成员变数并不等於是 property,有的时候你会需要一个 ObjC 物件
作为成员变数,但是这个变数只在 class 内部使用,而不希望让
其他 class 取用,或是你会把这个变数宣告成 readonly 的
property,这个时候你自然就不会有 setA: 可以用了。不过,虽然
某个变数你没有在 interface 宣告 getter/setter,但是你用
KVO 的方式还是可能可以拿到就是了…。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.190.100
1F:推 leondemon:我是想知道为什麽iPhone下的didReceiveMemoryWarning 01/02 23:45
2F:→ leondemon:为什麽书上会用setA:nil而不是单纯[A release] 01/02 23:46
3F:→ leondemon:在dealloc中是否把A release改成setA:nil会比较好? 01/02 23:46
4F:→ leondemon:以上是在有property(retain)并synthesize的前提下 01/02 23:46
5F:→ leondemon:你的回文让我学到很多 当然要先叫声大师 xd 01/02 23:47
6F:→ leondemon:既然iPhone或许有天会开放GC功能 所以现在用setA:nil 01/02 23:48
7F:→ leondemon:会比较好吗? 01/02 23:48
8F:推 Blueshiva:我是觉得你不用坚持[A release]和setA:nil谁比较好,因 01/02 23:52
9F:→ Blueshiva:为在一般的情况下,两者的功能是一样的。搞清楚你自己 01/02 23:54
10F:→ Blueshiva:class里面在搞什麽比较重要。 01/02 23:54