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

链接:

  • 更新桥接标题和PCH文件
  • 将前向类声明添加到头文件
  • 在转换后的文件顶部添加包含转换器版本号的标头
  • 重新排序顶级声明(将全局变量声明放在顶部)
  • 将“@objcMembers”属性添加到所有类声明中
  • 将包含'\ n'的所有字符串转换为Swift中的多行字符串
  • 将Xcode项目类型从“静态库”更改为“动态库”
  • 始终使用完全限定的枚举值
  • 使用默认值类型初始化没有初始值设定项的属性
  • 始终在变量declerations中明确指定类型名称(从不推断类型名称)
  • 在布尔属性中附加'is'前缀
  • 忽略属性名称中不必要的单词
  • 转换“受保护”Objective-C实例变量时要使用的访问修饰符

自动转化配置项

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

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

swift 3迁移到swift5 swift版本迁移指南相关推荐

  1. postgresql数据库迁移技巧(降低版本迁移到GreenPlum pg11-pg8)

    工具:navicat12 步骤: 1.创建scheme 2.导出源scheme的结构sql 3.在目标数据库执行源scheme结构sql中创建序列部分 4.直接操作拷贝scheme所有表(使用生成sq ...

  2. xcode12.3 swift 桥接文件_OC与Swift混编项目迁移到Swift4.2小记

    OC与Swift混编项目迁移到Swift4.2小记 前言 自从Xcode10正式版发布之后, 先吃螃蟹的朋友赞叹了Dark Mode的惊艳, 同时也报告说, 打包上传到APPStroe后, 监测到线上 ...

  3. Xcode 10 beta 版本迁移指南

    今天的主角就是开发者接触最多的 Xcode 10 beta,详细内容可以参考 WWDC 18 Session ,同时可以看下 Xcode 10 的 release note, 官方文档永远是学习新内容 ...

  4. Windows活动目录系列---活动目录版本迁移概述

    在实施AD域部署的过程中,你可能因为以下的两个原因想要重新构建你的AD环境: 优化AD域的逻辑结构.在一些组织中,从AD域部署时期到现如今,整个商业模式可能发生了很明显的变化,导致目前的AD域或者林结 ...

  5. oracle 导数据报exp00058_一文看懂oracle12c数据库跨小版本迁移

    概述 简单记录一下最近做的一个测试环境迁移,主要是从12.2.0.1 跨两个小版本迁移到19c(12.2.0.3),操作系统均为centos7,下面一起来看看吧~ 一.导出测试环境数据 1. 创建路径 ...

  6. 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察

    简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...

  7. IOS swift项目的单例模式.swift5以后的单例模式

    IOS swift项目的单例模式.swift5以后的单例模式 不能继承NSObject 第一种写法,最简单 class SoundTools{static let sharedInstance = S ...

  8. 续:跨平台版本迁移之 XTTS 方案操作指南

    作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信.省级财政.省级公安的维护,性能调优等.精通 Oracle 数据库管理,调优,问题诊断.擅长 ...

  9. 举一反三:跨平台版本迁移之 XTTS 方案操作指南

    作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信.省级财政.省级公安的维护,性能调优等.精通 Oracle 数据库管理,调优,问题诊断.擅长 ...

最新文章

  1. 在Windows下,用Hexo搭建博客
  2. python保存内容到文件(text、json、csv)
  3. pp模块中关于物料反冲的探讨
  4. PHP如何复制前端传递的json数据
  5. 如何知道交换机的缓存大小_网络基本功之细说交换机
  6. pat 乙级 1019 数字黑洞(C++)
  7. 2020年考证时间表汇总!这些证书值得拥有!
  8. 为什么那么多人转型做大数据
  9. codeigniter:去掉 URL 中的 index.php
  10. 【C语言】1162: 循环移动(指针专题)(初识stdlib.h(malloc))
  11. C语言以字符形式读写文件
  12. Atitit 软件开发中的艾提拉思想与理念总结 后端优先 手机优先 做好政治动员 高层抽象 一定要出理论结果书籍总结 技术就是艺术 三个软件层次的划分 实现层 规划层 艺术层 无限生
  13. 快速突破面试算法之搜索算法篇
  14. 【娜家花园养花小记】
  15. android 即时通讯技术,基于Android即时通讯系统的设计与实现
  16. Unity场景优化工具:Mesh Baker 基础教程(贴图篇)
  17. win10计算机管理里找不到设备管理器的解决方法
  18. c++算法的上界下界
  19. win10中查看wifi密码
  20. 嵌入式的汉字原来是这样显示的?

热门文章

  1. 【习题2】2.银行计算机储蓄系统--写出定义并分析此系统可行性
  2. 基于Java、JSP的网上招聘系统的设计和实现
  3. 《甜蜜蜜》光影交织的甜蜜美梦
  4. QT 调用vs写的dll 使用OutputDebugString输出调试信息
  5. 互联网企业做手机吃“软”饭:靠应用服务谋利
  6. 预训练和直接训练的区别
  7. 【2016年第1期】大数据环境下的管理信息系统发展研究
  8. 计算机网络 IPv4地址 最详的详解!!!
  9. 下载配合 VC6.0 使用的 MSDN
  10. 资源共享:R语言经典参考书目