我有一个iOS应用程序,可以为视频添加Sound FX。现在我想构建应用扩展目标以支持库存的Photo App。但是,我必须复制iOS应用程序中的几乎所有代码。到目前为止,我的解决方案是将常用函数放在共享文件中并将其用于两个目标,因为应用程序中的某些代码链接到AppDelegate而我无法在App Extension中使用它。在这种情况下,有没有更好的方法来避免代码重复?
还有一个问题:我在AppStore上看到的大多数扩展只有1个屏幕,这有什么规则吗?
在我的应用中,我必须让用户从文件夹中选择声音。库,它需要导航控制器。但导航控制器在App扩展中不可用,我应该构建自己的Navigaion控制器还是有更好的方法?
答案 0 :(得分:1)
只要您不需要定位iOS 7或更早版本,就可以将公共类放入共享框架并从两个目标加载该框架。这样可以避免在磁盘上有两个代码实例。
作为额外的好处,由于操作系统处理共享库加载的方式,所有实际代码页都在应用程序和扩展程序之间共享,因此您也不会浪费内存。