作者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
推 dryman:感謝~~ 03/03 22:46
推 dryman:我發現我想不出來該怎麼實作...我不知道該怎麼叫那些IB元件 03/03 23:25
→ dryman:吃我的protocol,或是把特定的事件用delegate來處理... 03/03 23:26
→ dryman:我查一查文件再上來問好了,感謝回答 <(_ _)> 03/03 23:26
推 leondemon:如果完全不會用到原本的功能 直接用category覆寫 會不會 03/04 00:42
→ leondemon:比較好? 03/04 00:42
推 leondemon:不覆寫的話 也可用method_exchangeImplementations 03/04 00:59
→ leondemon:在runtime時交換method的功能 03/04 00:59
→ leondemon:method_setImplementation也可以用 試試看吧 :) 03/04 01:01
→ zonble:在 category 裡頭放一個原本就有的 method 其實不是好主意 03/04 05:26
→ zonble:這樣以後別人閱讀程式碼的時候,不見得知道 runtime 會改變 03/04 05:26
→ zonble:這樣日後維護會很恐怖,不如 subclass 03/04 05:27
推 leondemon:如果只是測試用應該沒關係XD 可以參考MethodSwizzing 03/04 09:10