Re: [問題] id object 問題

看板MacDev作者 (←這人是超級笨蛋)時間11年前 (2013/12/04 19:13), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《s8911124 (-.-)》之銘言: : 大家好,有個問題想請教一下,假設我有一個function如下 : - (void)copyObject:(id<ChangeProtocol>)object : { : Class trueClass = [object class]; : trueClass *newObject = [trueClass alloc]init]; //Error : } : 有沒有辦法只知道protocol的物件當輸入,做出一個和此物件類別一樣的新物件? 接近了 - (void)copyObject:(id<ChangeProtocol>)object { Class trueClass = [object class]; id newObject = [[trueClass alloc] init]; // Or id<ChangeProtocol> newObject = [[trueClass alloc] init]; } 你不能把 trueClass 當成 newObject 的 type name 因為 trueClass 是「存有該 class 物件的變數」 而不是「那個 class」本身 Objective-C 是 C 的 superset, 所以在這裡必須遵從 C 的 syntax 在 C 裡 type name 必須是靜態的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.94.61

12/04 19:44, , 1F
謝謝指教!我懂了。
12/04 19:44, 1F

12/05 09:55, , 2F
好文推
12/05 09:55, 2F

12/06 09:46, , 3F
看不懂推
12/06 09:46, 3F
文章代碼(AID): #1IdmvPFQ (MacDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1IdmvPFQ (MacDev)