同时具有 Objective-c 和 Swift 的 iOS 应用程序 - 优缺点

标签 ios swift swift2

我使用的应用程序是 100% Objective-C,我想开始过渡以包含 Swift。由于代码库的规模,我很快就会拥有 100% Swift 应用程序是不现实的。

添加 swift 文件后,我注意到应用程序大小会增加,因为现在应用程序需要包含 Swift 运行时。

事情还有什么变化?一旦包含 Swift 文件,编译器和链接器会经历什么过程来发送现在是多语言和相关框架的二进制文件?

在较大的代码库中过渡到混合语言世界时还有其他注意事项吗?

最佳答案

根据我的经验,它的效果出奇的好。然而,建议等待具有泛型支持的 Xcode 7/Swift 2.0/Objective-C,因为这将消除一轮更新,允许您从 Objective-C 与更优雅的 Swift 代码进行互操作,并消除 Swift RT 链接问题现在他们已经稳定了运行时间。

除此之外,两个编译器都需要运行,首先是 Swift,其次是 Objective-C,swiftc 编译器可以非常快,也可以非常慢,具体取决于您编写的无辜和合法的 Swift 代码(这也是事实)当然是仅支持 Swift 的应用程序)。

开始时,您需要阅读互操作指南,了解桥接 header 的工作原理,然后就可以开始了。我想说,拥有一个混合应用程序实际上是一件幸事,因为您不必被迫同时学习和完成所有事情。当然,意见会有所不同,但这是我的。

关于同时具有 Objective-c 和 Swift 的 iOS 应用程序 - 优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323088/

相关文章:

ios - Swift:如何从String中提取日期作为NSDate?

ios - C# 规范是否允许从 ulong 转换为 int? Monotouch 给出一个 NumberOverflow

ios - UINavigationController,如何在第二级 View Controller 中隐藏选项卡然后在第三级 View Controller 中显示选项卡

Swift 类自定义类型属性

ios - 以编程方式快速退出模拟器

ios - 我的横幅 View 未在 SpriteKit Swift 2 中显示(Google AdMob)

ios - Xcode UI 测试登录用户重定向到主屏幕

android - "Show Inspector"未在 ios 模拟器中显示,"The Map Size Property Not Writable"在 android react-native 中出现问题

ios - 如何使用 JSTileMap swift 从触摸中获取最近的图 block

ios - UIViewAnimationOptions.TransitionFlipFromLeft 第二次不显示 UIView