我有一个问题,我想为iPhone和iPad添加不同的导入文件,但对于iPad不起作用,这就是我的方式:
#if TARGET_OS_IPHONE
#import "MyView_iPhone.h"
#elif TARGET_OS_IPAD
#import "MyView_iPad.h"
#endif
在代码中然后我写了例如:
MyView_iPhone *iphone = [MyView_iPhone alloc] init];
有效,但是:
MyView_iPad *iphone = [MyView_iPad alloc] init];
不能工作,给我一个错误,因为看不到MyView_iPad.h,我该怎么办?
这是错误:
未知接收器'MyView_iPad';你的意思是'MyView_iPhone'吗?
答案 0 :(得分:2)
<TargetConditionals.h>
实际上并未定义TARGET_OS_IPAD
。你无法在编译时知道你是在为iphone还是ipad执行!这是您应该在运行时检查的内容,导入两个视图并执行以下操作:
UIView *iphone;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
iphone = [[MyView_iPad alloc] init];
}
else{
iphone = [[MyView_iPhone alloc] init];
}