嵌入了iOS项目的OSX项目 - 找不到UIKit.h

时间:2013-09-25 11:34:23

标签: ios macos

我有一个带有iOS子项目的OSX项目。子项目使用UIKit.h,但即使子项目将UIKit框架添加到Link Binary with Libraries部分,我仍然会收到错误说明:

  

未找到词法或预处理器问题UIKit / UIKit.h文件

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

听起来你只需要一些条件编译:

我有一个为OSX和iOS构建的项目,它共享源代码。我有一个名为SysInfo.h的头文件,它位于顶部:

#import <TargetConditionals.h>

#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
#define SYSINFO_OSX 1
#else
#define SYSINFO_IOS 1
#endif

(以及此处不相关的其他内容)

然后可以像这样使用它:

#import "SysInfo.h"

#ifdef SYSINFO_OSX
#import <Cocoa/Cocoa.h>
#else // !SYSINFO_OSX
#import <UIKit/UIKit.h>
#endif // SYSINFO_OSX

当然,这只是冰山一角,因为您需要确保在正确的平台上使用正确的API,使用相同的方法。