2010-07-27 168 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

相关问题