美文网首页
我暂时不使用Swift的原因

我暂时不使用Swift的原因

作者: HWenj | 来源:发表于2016-03-04 17:20 被阅读98次
Swift不支持静态链接库

Apple从IOS8开始允许开发者使用动态Framework. 如果要在Swift项目中使用第三方库, 一种是把代码拷贝到工程中, 另一种是用动态Framework(使用cocoapods进行管理). 而无法使用静态库.

造成这个问题的原因主要是SwiftRuntime没有被包含在iOS系统中,而是会打包进App中(这也是造成Swift App体积大的原因),静态库会导致最终的目标程序中包含重复的Runtime(这是苹果自家的解释)。同时拷贝Runtime这种做法也会导致在纯ObjC的项目中使用Swift库出现问题。

CocoaPods的做法:
在纯 ObjC 的项目中,CocoaPods 使用编译静态库 .a 方法将代码集成到项目中。在 Pods 项目中的每个 target 都对应这一个 Pod 的静态库。
对于 Swift 项目,CocoaPods 提供了动态 Framework 的支持,通过 use_frameworks! 选项控制。

这样如果我要兼容IOS7, 就无法在Swift项目中使用cocoapods.

在iOS 8及以下的平台上,使用Swift需要将Swift运行时打包到App,会增大App体积。

相关文章

网友评论

      本文标题:我暂时不使用Swift的原因

      本文链接:https://www.haomeiwen.com/subject/hlmokttx.html