2

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

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

我该如何解决这个问题?

4

1 回答 1

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,使用大致相同的方法。

于 2013-09-25T12:43:43.867 回答