我正在开发 iOS 8 扩展。我阅读了很多手册,所有这些都只是展示了向您的应用程序添加扩展是多么简单,似乎就足够了。
但是这里有很多陷阱:
添加扩展后,您需要将一些类导入到添加新扩展目标时创建的视图控制器。您需要将所有这些都添加到这里的大用途,如果您有大型项目,这不是一项简单的任务。解决方案可以选择扩展目标,然后在 Build Phases -> Compile Sources 按加号按钮并使用热键 CMD+A 将所有 .m 文件添加到您的目标。
添加所有文件后,您会看到某些方法不起作用,并且您会看到此错误:
'sharedApplication' is unavailable: not available on iOS (App Extension)
因此解决方案可以是检查的宏,ifndef Extension
然后我们可以调用sharedApplication
代码。#import <Foundation/Foundation.h>
与#import <UIKit/UIKit.h>
。所以我还没有弄清楚这个问题,但是当我用它替换Foundation
它时,它对我UIKit
有用,所有相关问题都消失了。- 可可豆荚。我们所有人都在使用 CocoaPods,所以如果您的扩展需要使用项目代码的某些部分并且该代码使用 CocoaPods 库,那么您需要添加
link_with 'ProjectTarged', 'ExtensionTarget'
到 Pod 文件并pod install
再次 make 以将您的库与新的扩展目标绑定。
所以这是我面临的一个要点。也许有人可以建议如何解决这个问题,正如我所说,我只是将一个需要的文件导入到扩展视图控制器。导入的文件包含一些库,如AFNetworking
,RestKit
以及来自主项目的其他嵌套类。我需要这个类来调用一些方法,将数据从扩展传递到我的后端服务器。所以一个文件,但很多问题。