我的任务是将现有应用程序的模型层拆分为单独的框架。我正在尝试使用cocoapods制作一个我将导入回主应用程序的pod。
我遇到的问题是我正在拆分代码的应用程序是Swift和Objective-c的混合。它没有干净利落,所以Swift代码使用Objective-c代码,Objective-c代码使用Swift代码。
我很难理解如何实现这一目标,或者甚至是否可能?当你在框架中时,桥接头和生成的* -swift.h看起来似乎没有相同的方式。然后豆荚是另一个并发症。
我试着在这里尝试一个简单的项目。 SPOILER ALERT。它不编译。 https://github.com/Megatron1000/TestMixAndMatch
我试图找到一个cocoapod的例子,它以相同的纠缠语言方式设置,但却无法完成。任何人都可以指出一个我可以用作例子吗?
我有一个包含Obj-C和Swift代码的(私有)pod。在podspec我只是简单地添加它们
s.source_files = 'Project/*.{swift}',
'Project/legacy/*.{h,m}'
从技术上讲,在Xcode中,这个项目是一个框架。
Here您可以在项目中找到如何将它们组合的技术细节。从技术上讲,如果你创建一个框架,你需要在框架的伞头中包含Obj-C头如果你想在你的Obj-C类中使用Swift方法,你需要将它们包含在
#import <ProductName/ProductModuleName-Swift.h>
如果你正在建立一个框架或简单
#import "ProductModuleName-Swift.h"
如果你正在做一个常规项目
在这种情况下,最好的方法可能是简化框架的设计,只需重写Objective-c遗留代码信息swift。您提到代码库已经部分在Swift中,这将使完成转换变得更加容易。