看板 MacDev 關於我們 聯絡資訊
※ 引述《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
zonble:建議把這一篇讀一讀 http://0rz.tw/rSQ6x :p 03/04 00:21
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