WatchKit:'sharedApplication'不可用:iOS上不可用(App Extension) - 在适当的情况下使用基于视图控制器的解决方案

Dan*_*ger 7 ios watchkit

我在监视工具包扩展中的构建阶段添加了Manager.m(iOS类).但是,我收到以下错误

'sharedApplication'不可用:iOS上不可用(App Extension) - 在适当的情况下使用基于视图控制器的解决方案

这是我的Manager.m中导致问题的一行.

 AppDelegate *appDelegate =
  (AppDelegate *)[[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)

我想在Manager.m中使用代码,但是像这样的代码行会导致问题,并且不会让我运行监视App.有没有解决的办法?我不想重写整个班级只是为了容纳watchkit.

msk*_*msk 5

在监视工具包扩展的目标构建设置中定义/添加宏(例如WATCH_KIT_EXTENSION_TARGET),并使用它来有选择地构建代码.例如,由于iOS扩展程序上没有sharedApplication,因此您可以像下面这样编写代码

#ifndef WATCH_KIT_EXTENSION_TARGET
AppDelegate *appDelegate =
  (AppDelegate *)[[UIApplication sharedApplication] delegate];
#endif
Run Code Online (Sandbox Code Playgroud)