为Swift和Objective-C构建一个库

为Swift和Objective-C构建一个库,objective-c,swift,build,static-libraries,Objective C,Swift,Build,Static Libraries,我需要用swift创建一个库,支持swift和ObjectC项目(也支持xcode 5),这将是一个分发库(不共享源代码)。有两种方法可以做到这一点:创建Cocoa Touch框架或创建Cocoa Touch静态库。我做了一些研究,但还是找到了解决办法。Cocoa-Touch框架似乎不支持构建分发库,我也不确定Cocoa-Touch静态库是否能与Swift完美配合。有什么解决办法吗。谢谢。这类库的一个很好的例子是 它们都支持swift和objective-c项目集成。查看GitHub上的回购协议

我需要用swift创建一个库,支持swift和ObjectC项目(也支持xcode 5),这将是一个分发库(不共享源代码)。有两种方法可以做到这一点:创建Cocoa Touch框架或创建Cocoa Touch静态库。我做了一些研究,但还是找到了解决办法。Cocoa-Touch框架似乎不支持构建分发库,我也不确定Cocoa-Touch静态库是否能与Swift完美配合。有什么解决办法吗。谢谢。

这类库的一个很好的例子是

它们都支持swift和objective-c项目集成。查看GitHub上的回购协议,然后浏览:

事实上,它们的所有库都用Objective-C编码,并添加了对swift Specificity的支持以及对客户机使用的对象的扩展。(例如,在其repo中检查Realm/RLMSwiftSupport.m)

编辑

要访问Objective-C中的Swift类,只需在Swift类中添加
@objc(MyClass)
,即可在Objective-C文件中使用


有关Objective-C和Swift协同工作的更多信息,请阅读,我面临的问题与您相同,即为Swift和Objective-C构建一个Pod库,分别使用纯代码而不混乱语言或包含桥接头。事实上,我没有亲自尝试,但我找到了几种可能的解决方案:

1) 要使用同一回购协议的不同分支机构:

pod 'YourPodLib', :git => 'https://github.com/user_name/YourPodLib.git', :branch => 'objc'

pod 'YourPodLib', :git => 'https://github.com/user_name/YourPodLib.git', :branch => 'swift'
2) 尝试使用子服务器作为安装库子集的一种方式。(官方cocoapods文件:)

它可能看起来像:
pod'YourPodLib/Swift'


也许我的方法远远不够理想,但如果您能纠正我或提出更好的想法,我将不胜感激。

顺便说一句,问题标题不好,最好是:“为Swift和Objective-C构建一个库”。我编辑it@Pintouch:你说得对,tks。我已经查看了领域源代码,它们使用Object-C编写,然后支持Swift。在我的情况下,它希望通过Swift实现,并支持Swift和Object-C。哦,很抱歉误解了。如果您想从Objective-C访问Swift类,只需在Swift类中添加
@objc(MyClass)
。那么这个课程将在Objective-C中提供