gpt4 book ai didi

objective-c - 预处理器指令可以用于为 Mac 和 iOS 导入不同的头文件吗?

转载 作者:太空狗 更新时间:2023-10-30 03:30:08 24 4
gpt4 key购买 nike

我正在为 Mac OS X 和 iOS 编写一个类库,将作为 OS X 的 Cocoa 框架和 iOS 的静态库发布。为了简化问题,我打算在 Xcode 中使用多个目标。但是,Mac OS X 上的类链接到 Cocoa.h,而在 iOS 上它们链接到 Foundation.h。

我的问题基本上是:

  • Mac OS X 框架可以链接到 Foundation.framework 吗?框架中使用的类是 NSString、NSMutableString 和 NSMutableArray。
  • 或者我可以在头文件中使用预处理器指令来控制框架包含,例如

    #ifdef MacOSX
    #import <Cocoa/Cocoa.h>
    #else
    #import <Foundation/Foundation.h>
    #endif

最佳答案

您可以使用它们来分隔依赖于平台的代码(参见 TargetConditionals.h):

#ifdef TARGET_OS_IPHONE 
// iOS
#elif defined TARGET_IPHONE_SIMULATOR
// iOS Simulator
#elif defined TARGET_OS_MAC
// Other kinds of Mac OS
#else
// Unsupported platform
#endif

这是一个 useful chart .

关于objective-c - 预处理器指令可以用于为 Mac 和 iOS 导入不同的头文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com