我有一个名为ModelBase的基类和一个名为“Person”的派生类。
-(Person*) init { if(self = [super init]) return self; return nil; }
然而,Objective C抱怨说 不兼容的Objective-C类型正在初始化“struct ModelBase*”,应为“struct Person*”。我只是用[super init]初始化self,它初始化指向派生类的基类指针。
我错过了什么?
您是否声明了要返回的ModelBase init方法(ModelBase*)?如果是,则改为return(id)。您会注意到,Cocoa中的大多数初始值设定项返回(id)正是出于这个原因。
而不是
- (ModelBase*)init;
- (id)init;