作者zonble (zonble)
看板MacDev
标题Re: [问题] 除了subclass外更改method的方法?
时间Thu Mar 3 21:39:35 2011
※ 引述《dryman (dryman)》之铭言:
: 如题
: 请问如果我只想修改某个物件的一个method
: 我还是得先继承这个物件再予以修改吗?
: 因为要改的物件还不少(我想覆写几个已经放在IB上的元件按enter时的效果)
: 每个都要自己做个class再覆写keydown好麻烦...orz
你可以只做一个 subclass,然後自己写一个 protocol,
把 keydown 发生的事情丢给 delegate 处理。
但是这样 delegate method 里头大概也会有一大堆 if else
就是了,但至少不用那麽多 subclass。
: 最近一直疯狂的问问题(汗)
: 有劳大家解答了...
: BTW iPad2可以用photo booth耶
: 所以现在iPad2里面可以使用core image了吗?
iOS 4.3 里头目前没有看到 CIImage 这个 class 公开出来。
说到这个,Lion 里头目前多出来 AVFoundation,这个倒是有点奇妙,
iOS 的 AVFoudation 与 Cocoa 的 QTKit 性质有很大的重叠,而
现在要把 AVFoundation 放在 Mac 上,不知道是不是要把 QTKit
换掉的意思。
--
zonble.net
cocoa.zonble.net
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.103.143
1F:推 dryman:感谢~~ 03/03 22:46
2F:推 dryman:我发现我想不出来该怎麽实作...我不知道该怎麽叫那些IB元件 03/03 23:25
3F:→ dryman:吃我的protocol,或是把特定的事件用delegate来处理... 03/03 23:26
4F:→ dryman:我查一查文件再上来问好了,感谢回答 <(_ _)> 03/03 23:26
6F:推 leondemon:如果完全不会用到原本的功能 直接用category覆写 会不会 03/04 00:42
7F:→ leondemon:比较好? 03/04 00:42
8F:推 leondemon:不覆写的话 也可用method_exchangeImplementations 03/04 00:59
9F:→ leondemon:在runtime时交换method的功能 03/04 00:59
10F:→ leondemon:method_setImplementation也可以用 试试看吧 :) 03/04 01:01
11F:→ zonble:在 category 里头放一个原本就有的 method 其实不是好主意 03/04 05:26
12F:→ zonble:这样以後别人阅读程式码的时候,不见得知道 runtime 会改变 03/04 05:26
13F:→ zonble:这样日後维护会很恐怖,不如 subclass 03/04 05:27
14F:推 leondemon:如果只是测试用应该没关系XD 可以参考MethodSwizzing 03/04 09:10