我正在尝试在我的watchkit扩展和主机App中使用相同的代码,但在主机App中有一些额外的代码,在watchkit扩展中有一些额外的代码。为此,我在各自的目标上添加了WATCH和APP swift标志。问题是,当我选择我的应用程序方案查看我的代码时,它没有语法突出显示APP代码,但突出显示WATCH代码,而其他引用APP代码的代码则无法编译。
watchkit扩展是App的目标依赖项,所以我猜它就像编译手表的代码然后使用相同的App编译代码,虽然在编译结果中我可以看到它是使用正确的标志进行编译,并且看不到watchkit和App构建路径之间的任何重叠,任何想法?
答案 0 :(得分:1)
SWIFT版本
在WatchKit Extension目标的构建设置中使用其他swift标志。例如,添加标志WATCH(必须以-D为前缀):
然后在您的共享文件中添加以下代码:
#if WATCH
NSLog("watch")
#else
NSLog("app")
#endif
Objective-C版
在WatchKit Extension目标的构建设置中使用预处理器宏。例如,添加宏WATCH = 1:
然后在您的共享文件中添加以下代码:
#ifdef WATCH
NSLog(@"watch");
#else
NSLog(@"app");
#endif