Objective C前向声明和类型兼容性

时间:2015-05-06 06:34:37

标签: objective-c inheritance forward-declaration

我的代码如下:

#import "ViewModelBase.h"

@interface ViewControllerA : UIViewController
@property (nonatomic, strong) ViewModelBase* viewModel;
@end

然后我需要做以下事情:

#import "ViewControllerA.h"

@class ViewModelSubclass;

@interface ViewControllerB : ViewControllerA
@property (nonatomic, strong) ViewModelSubclass* viewModel;
@end

其中ViewModelSubclass.h不应导入ViewControllerB.h,仅导入.m文件。 但是,ViewModelSubclass应该是ViewModelBase的子类。 这样做是为了隐藏ViewModelSubclass与ViewControllerB客户端的接口。 我如何解决"物业类型' ViewModelSubclass *'与类型' ViewModelBAse *'不兼容继承自ViewControllerA"警告? 或者有什么更好的方法呢?

1 个答案:

答案 0 :(得分:-1)

不要像这样使用

#import<ViewControllerA.h>

尝试使用

#import "ViewControllerA.h"

我认为它会解决你的问题