swift 3迁移到swift5 swift版本迁移指南

Swift 5已经发布下面是官方swift5的介绍。

Introducing Swift 5.1

Swift 5.1 now makes it easier to create and share binary frameworks with others. It also includes features that make it easier to design better APIs and reduce the amount of common boilerplate code.

Key Features

  • Module stability defines a new text-based module interface file that describes the API of a binary framework.
  • Property wrappers introduce a general purpose syntax for defining custom access patterns for property values.
  • Opaque result types help hide implementation details in APIs.
  • 'Self' can now be used for classes and value types.
  • Support for handling and updating diffs on collections of appropriate types.
  • Improvements to SIMD and String types.

此版本终于迎来了 ABI 稳定,因此 Swift 运行时现在可以引入到 Apple 平台各类操作系统的不同版本中,包括 macOS、iOS、tvOS 与 watchOS。Swift 5 还引入了构建块的新功能,包括重新实现 String、在运行时对执行内存的独占访问与新数据类型,以及对动态可调用类型的支持。

Swift 5 兼容 Swift 4、Swift 4.1 和 Swift 4.2,Xcode 10.2 中包含了一个代码迁移器,可以自动处理许多迁移需要用到的源码更改。

语言更新

稳定的 ABI 与二进制兼容性

ABI 已经稳定,因此 Swift 库现在可以整合到每个 macOS、iOS、tvOS 和 watchOS 版本中,应用将更容易构建,并且体积更小,因为它们不必包含这些库。

标准库更新

Swift 5 中的标准库包括以下新特性:

  • 使用 UTF-8 编码重新实现的 String 可以产生更快的代码,之前我们已经报导过:Swift 5 将使用 UTF-8 作为首选字符串编码
  • 改进了对字符串中原生文本的支持
  • 标准库添加 Result 和 SIMD 矢量类型
  • 增强了字符串插值功能,为从数据构造文本提供了更多灵活性
  • 改进了 Dictionary 和 Set 的性能

 

目前应该有不少的项目还是处于OC Swift混编的状态, 那么如何将这部分老的OC代码迁移至Swift版本?

1:重写(量大的话不太现实), 比较耗费精力和时间
2:使用工具(本片文章主要推荐的)   

备份好代码,对于 Xcode 我有一个经验再次和大家分享一下:Xcode 有两个版本,一个不稳定的版本和一个更不稳定的版本。

Swiftify

xcode可直接下载安装, <Swiftify for Xcode>下载安装后需要简单的配置方可使用:

  1. -系统偏好设置>"扩展"中为Xcode Source Editor(Xcode源码编辑器)选择"Swiftyfy for Xcode"
  2. 打开Xcode > Editor > 菜单下看到新的"Swiftify"子菜单

这里有三个选项:

  • 1: Convert Selection to Swift(将选中的代码块转化成Swift)
  • 2:Convert File to Swift(将文件转化成swift语言)
  • 3:Paste as Swift (以Swift方式粘贴代码)

不同注册用户代码转化有大小限制:

  • 未注册用户: 1KB/每次 大概也就100代码不到吧
  • 注册未付费用户: 2KB/每次

选中代码转化成Swift快捷键配置

自动转化配置项介绍

功能丰富, 分别针对工程文件,静态库文件,部分OC代码转化后OC Swift混编的处理, PCH的处理,Xib/Storyboard处理,被转化后的swift文件被其他OC文件引用的处理,'\n'字符串的出里,以及是否需要将使用的静态库转化成动态库的处理等

文档列表都在这里

https://support.swiftify.com/hc/en-us/articles/360028372231-Update-Xcode-project-files

链接:

自动转化配置项

网页端转化链接:
https://objectivec2swift.com/#/converter/code/

相对于  swift3迁移swift4    swift3迁移swift5还是比较简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值