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

嵌入iOS项目的OSX项目-找不到UIKit.h,ios,macos,Ios,Macos,我有一个OSX项目和一个iOS子项目。该子项目使用UIKit.h,但即使该子项目已将UIKit框架添加到“使用库链接二进制文件”部分,我仍然会收到以下错误消息: 未找到词法或预处理器问题错误UIKit/UIKit.h文件 如何解决此问题?听起来您只需要一些条件编译: 我有一个为OSX和iOS构建的项目,它共享源代码。我有一个名为SysInfo.h的头文件,它的顶部有: #import <TargetConditionals.h> #if !TARGET_OS_IPHONE &

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

未找到词法或预处理器问题错误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
#导入
#如果!目标是IPHONE&&!目标IPHONE模拟器
#定义SYSINFO_OSX 1
#否则
#定义SYSINFO_IOS 1
#恩迪夫
(以及其他与此处无关的内容)

然后可以这样使用它:

#import "SysInfo.h"

#ifdef SYSINFO_OSX
#import <Cocoa/Cocoa.h>
#else // !SYSINFO_OSX
#import <UIKit/UIKit.h>
#endif // SYSINFO_OSX
#导入“SysInfo.h”
#ifdef SYSINFO_OSX
#进口
#否则//!SYSINFO_OSX
#进口
#endif//SYSINFO\u OSX

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

macro black magic。谢谢:)