iOS extensions 中许多函数不能使用

iOS extensions 中许多函数不能使用

在开发iOS extensions 中遇到许多函数不能使用。

  • +[UIApplication shareApplication];
  • -[UIAlertView init]

这样导致很多代码在共用时出现编译问题。
知名的网络请求库AFNetworking已经对这种问题给出了解决方案。就是定义AF_APP_EXTENSIONS。需要自己定义这个宏定义。

xCode在创建extensionsTarget时可以帮开发者添加一个宏来识别这种情况的,不知到为什么没这个做,结果各个类库需要独立的解决方案。

有了extensions以后,framework的开发就增加了新的挑战。需要小心的设计API。需要考虑framework 在extensions中使用的场景。高德地图SDK显然没有兼容这种情况。在没有配置正确的key时,会调用UIAlertView来显示消息,导致extensions应用 crash。