如何有条件地为 Catalyst 编译代码?

Bil*_*ill 5 macos ios mac-catalyst

我正在将 iOS 应用程序移植到 Catalyst。Catalyst (Mac) 版本将有自己的目标。

有没有一种官方方法可以有条件地为 Catalyst 编译代码?否则,我可以添加特定于目标的定义,但最好使用更通用的定义。

rma*_*ddy 17

如文档创建您的 iPad 应用程序的 Mac 版本中所示,您执行以下操作:

迅速:

#if targetEnvironment(macCatalyst)
    // Code specific to Mac.
#else
    // Code to exclude from Mac.
#endif
Run Code Online (Sandbox Code Playgroud)

目标-C:

#if TARGET_OS_MACCATALYST
    // Code specific to Mac.
#else
    // Code to exclude from Mac.
#endif
Run Code Online (Sandbox Code Playgroud)

  • 如果在桥接标头中使用它,您还需要`#import <TargetConditionals.h>` (2认同)