Re: [問題] Obj-C中的delegate如何運作?

看板MacDev作者 (←這人是超級笨蛋)時間16年前 (2009/05/29 17:34), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串2/6 (看更多)
※ 引述《leondemon (狗狗)》之銘言: : 看了一些資料和書 還是不太懂什麼是delegate : 以及他是如何運作的... : 有沒有什麼比較白話的例子能夠幫助了解呢? : 謝謝:) 用 Aaron Hillegass 的講法XD 假設你現在想製造一個正義英雄 當然如果你旁邊有 Superman 之類的另當別論, 但假設你沒有 那你有兩種作法, Hillegass 稱之為「機器戰警法」和「霹靂遊俠法」 大部分的物件導向語言都使用前者 先建立一個「人」class 的 subclass, 然後開始改寫 例如把「右手」method 改成機槍,「左手」改成機關砲等等 「眼睛」加上熱掃描功能順便內建夜視, 順便新增一個噴射器 method 還可以飛 但 Objective C (in Cocoa) 的作法不太一樣 他們另外打造了一台霹靂車「夥計」 當然夥計是有特別設計過的, 要李麥克才能開 不過這個李麥克除了把妹很罩之外其實沒什麼用, 只是(有主角威能的)一般人 這樣我們就說, 夥計是李麥克的 delegate 平常走在路上的時候, 車子當然是李麥克在開, 事情是交給他來處理 可是當遇到他沒辦法解決的問題時, 例如前面有牆 李麥克就會把控制權交給夥計, 讓他發射幾根火箭炮來開路 當然, 夥計開完路之後就會把控制權交還給李麥克, 讓他繼續開車 所以在 Cocoa 程式裡你不太會去弄一堆 subclass 繼承來繼承去 而是會建立一個又一個的 helper object, 來輔佐已有的 class 做到更多事 大概是這樣... 有興趣可以看 CocoaCast 的 Episode 7 或者 Hillegass 在 Cocoa Programming in Mac OS X 裡我覺得寫得最清楚 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.72.123

05/29 19:35, , 1F
媽呀 Hillegass寫的都沒你生動 出書了啦
05/29 19:35, 1F

05/29 19:39, , 2F
可是我還是不太懂Helper Object和delegate的不同...
05/29 19:39, 2F

05/29 19:39, , 3F
我一直以為伙計是helper object
05/29 19:39, 3F

05/29 19:41, , 4F
在interface builder中 何時要connect物件的delegata?
05/29 19:41, 4F

05/30 09:20, , 5F
很有趣的例子
05/30 09:20, 5F
文章代碼(AID): #1A7wmT4y (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1A7wmT4y (MacDev)