iOS Build应用程序扩展基于现有应用程序。如何避免代码重复?

时间:2016-12-28 02:26:27

标签: ios objective-c xcode ios-app-extension code-duplication

我有一个iOS应用程序,可以为视频添加Sound FX。现在我想构建应用扩展目标以支持库存的Photo App。但是,我必须复制iOS应用程序中的几乎所有代码。到目前为止,我的解决方案是将常用函数放在共享文件中并将其用于两个目标,因为应用程序中的某些代码链接到AppDelegate而我无法在App Extension中使用它。在这种情况下,有没有更好的方法来避免代码重复?

还有一个问题:我在AppStore上看到的大多数扩展只有1个屏幕,这有什么规则吗?

在我的应用中,我必须让用户从文件夹中选择声音。库,它需要导航控制器。但导航控制器在App扩展中不可用,我应该构建自己的Navigaion控制器还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

只要您不需要定位iOS 7或更早版本,就可以将公共类放入共享框架并从两个目标加载该框架。这样可以避免在磁盘上有两个代码实例。

作为额外的好处,由于操作系统处理共享库加载的方式,所有实际代码页都在应用程序和扩展程序之间共享,因此您也不会浪费内存。