Re: [問題] id object 問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章