我有一个带有iOS子项目的OSX项目。子项目使用UIKit.h,但即使子项目将UIKit框架添加到Link Binary with Libraries部分,我仍然会收到错误说明:
未找到词法或预处理器问题UIKit / UIKit.h文件
我该如何解决这个问题?
答案 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,使用相同的方法。