我尝试在我的 watchkit 扩展和主机应用程序中使用相同的代码,但在主机应用程序中使用一些附加代码,在 watchkit 扩展中使用一些附加代码。为此,我在各自的目标上添加了 WATCH 和 APP swift 标志。问题是,当我在选择应用程序方案的情况下查看代码时,它不会在语法上突出显示应用程序代码,但会突出显示 WATCH 代码,而引用应用程序代码的其他代码则无法编译。
watchkit 扩展是应用程序的目标依赖项,因此我猜测它类似于为 watch 编译代码,然后为应用程序使用相同的编译代码,尽管在编译结果中我可以看到它是使用正确的标志进行编译,看不到 watchkit 和应用程序构建路径之间有任何重叠,有什么想法吗?
最佳答案
SWIFT版本
在 WatchKit 扩展目标的build设置中使用其他 swift 标志。例如,添加一个标志WATCH(必须带有-D前缀):
然后在您的共享文件中添加以下代码:
#if WATCH
NSLog("watch")
#else
NSLog("app")
#endif
Objective-C版本
在 WatchKit 扩展目标的build设置中使用预处理器宏。例如添加宏WATCH=1:
然后在您的共享文件中添加以下代码:
#ifdef WATCH
NSLog(@"watch");
#else
NSLog(@"app");
#endif
关于ios - 在 WatchKit 和主机 App 中使用具有不同标志的同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29748808/