我在自定义FileIO(输入/输出)类中具有以下定义的方法:

- (void)saveObject:(NSObject*)object;


我还有一个名为MyClass的类,它具有一个属性:

@property (nonatomic, strong) MyDataClass* myData; // subclassed from NSObject


我尝试用该属性调用该方法:

[fileIO saveObject:self.myData];


由于某种原因,我收到了语义警告:

Incompatible pointer types sending 'MyDataClass *' to parameter of type 'NSObject *'

最佳答案

鉴于MyDataClass实际上确实扩展了NSObject,如果此.m文件未(直接或间接)导入MyDataClass的.h,则可能会出现问题。如果所看到的只是一个前向声明(通过@class),则编译器尚不知道MyDataClass扩展了NSObject

MyDataClass导入.h,它应该可以解决问题。

10-06 13:26