我正在构建一个将在 iOS/OSX 应用中使用的模块。
客户坚持认为该模块可以在 iOS 和 OSX 上运行。
我需要检查我在 iOS 和 OSX 上使用 UIDevice 时使用的系统版本 FTWDevice .
问题是,当我尝试在 OSX 上编译它时,它会提示 OSX 不支持 UIDevice。
我想知道是否有一种方法可以告诉编译器在 iOS 而不是在 OSX 上编译一行代码?
我知道我可以用这个来编译生产环境中的东西:
#ifndef DEBUG
[Crashlytics startWithAPIKey:CRASHLYTICSKEY];
#endif
是否有针对此问题的解决方案,或者我应该告诉客户他们需要 2 个完全相同的模块,除了一条线?
另一个可接受的解决方案是在不涉及使用 UIDevice 的 iOS 上查找系统版本的解决方法。
请您参考如下方法:
查看 TargetConditionals.h。具体来说:
#if TARGET_OS_MAC
// Mac-only code here
#endif
#if TARGET_OS_IPHONE
// iOS-only code here
#endif
