我有一个带有 iOS 子项目的 OSX 项目。子项目使用 UIKit.h,但即使子项目将 UIKit 框架添加到 Link Binary with Libraries 部分,我仍然收到错误消息:
未找到词法或预处理器问题错误 UIKit/UIKit.h 文件
我该如何解决这个问题?
听起来你只需要一些条件编译:
我有一个为 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,使用大致相同的方法。