2010-07-27 120 views
0

我有一個名爲ModelBase的基類,我有一個名爲「Person」的派生類。 現在的人init方法,我有一些像在目標c中指派派生類的基類指針

-(Person*) init { 
    if(self = [super init]) 
     return self; 

    return nil; 
} 

然而,Objective C的抱怨 不兼容的Objective-C類型初始化「結構模型庫*」,預期「結構人*」。我只使用[super init]初始化自己,它正在初始化一個派生類的基類指針。

我錯過了什麼?

+0

什麼是你的頭是什麼樣子? – jessecurry 2010-07-27 04:07:20

回答

5

您是否聲明ModelBase的init方法返回(ModelBase *)?如果是這樣,請將其改爲返回(id)。你會注意到Cocoa中的大多數初始化器都返回(id)。

而不是

- (ModelBase*)init; 

你想

- (id)init; 
+0

完美答案! – Mugunth 2010-07-27 04:15:22

相關問題