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

标签 ios macos

我有一个带有 iOS 子项目的 OSX 项目。子项目使用 UIKit.h,但即使子项目已将 UIKit 框架添加到“链接二进制文件与库”部分,我仍然收到错误消息:

Lexical or Preprocessor Issue error UIKit/UIKit.h file not found

我该如何解决这个问题?

最佳答案

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

我有一个为 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。

关于ios - 嵌入了 iOS 项目的 OSX 项目 - 未找到 UIKit.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003794/

相关文章:

ios - Swift:如何用 SK Sprite 节点填充 View ?

r - R中根据文件名定义文件路径

Python pygame 错误 : Failed loading libpng. dylib : dlopen(libpng. dylib, 2): image not found

ios - 如何防止 UITableViewCell 的 textLabel 在 iPad 上截断其文本

ios - 相机插件在 ios 的 phonegap 应用程序中不起作用

ios - JSON页面仅访问第一页xcode

c - 在 OSX 上使用 GDB 检测堆栈损坏(在金丝雀值上设置观察点)

ios - 如何解决 Caffe IOS 中的未知层类型。?

c - 程序凭借纯粹的意志力溢出调用堆栈

swift 3 : PDFDocument crashes