Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
查看查看886 回复回复15 收藏收藏2 分享淘帖 转播转播 分享分享 微信
查看: 886|回复: 15
收起左侧

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库

[复制链接]
1起来 发表于 2016-9-20 16:27:23 | 显示全部楼层 |阅读模式
快来登录
获取最新的苹果动态资讯
收藏热门的iOS等技术干货
拷贝下载Swift Demo源代码
本帖最后由 swifter 于 2016-10-13 04:20 编辑

尽管喵神说,不急着适配Swift 3.0,“因为 Swift 3 改动很大,所以不一定所有第三方框架都会在第一时间进行适配。”详见Swift开发者社区 敏捷大拇指Swifthumb.com)上的这个帖子《是时候适配 Swift 3 了吗——专访 LINE iOS 开发工程师王巍》。但我想啊,这都过去两个月了,决定还是要尝尝,于是,最近我将项目从 Xcode 7 + Swift 2.3 升级 Xcode 8 + Swift 3.0,遇到了一些问题,整理一下。




1、自己的工程,只需Converter

自己的工程从2.3 升级到3.0算是顺利,只要使用 Xcode 的 Converter 即可:

菜单 -> Edit -> Convert -> To Current Swift Syntax...

项目中难免会使用到第三方的 lib,如果第三方 lib 没有提供 Swift 3 版本,那就得另想办法。什么叫另想办法?换个 lib 呗,不然就自己造轮子。

下面说一下第三方 lib 的迁移(我的项目使用 Cocoapods 管理第三方 lib,所以都以 Cocoapods 为例,其它管理工具都差不多,自行处理)




2、第三方库迁移大法



2.1、首先在 Podfile的最下面添加如下代码,为所有 lib 指定 Swift 版本。

[Bash shell] 纯文本查看 复制代码
post_install do |installer|
 installer.pods_project.targets.each do |target|
     target.build_configurations.each do |config|
         config.build_settings['SWIFT_VERSION'] = '3.0'
     end
 end
end




2.2、将第三方 lib 切换到 Swift 3 版本。

一般有在维护的 lib 都会提供 Swift 3的分支,即使没有提供,也会有热心的码农们 fork 适配。




3、经典的第三方库

下面讲几个我项目里用的 lib 的迁移。



3.1、Alamofire

Alamofire 最新版本4.0,这个版本最低适配要求是 Swift 3.0,iOS 9.0。

由于我的项目还需要对部分 iOS 8 用户负责,所以只能遗憾和 Alamofire 告别了。昨天犹豫了半天,到底要自己造轮子,还是再找个靠谱的 lib。最终还是决定偷懒换 lib,虽然功能还不够完善,但基本够使。



3.2、SwiftHTTP

代替品是SwiftHTTP,但这个 lib 暂时没有提供 Swift 3 版本,刚才说了有热心的码农已经 fork 适配好,所以将 Podfile 中的代码 link 修改一下。

[Bash shell] 纯文本查看 复制代码
pod 'SwiftHTTP', :git => 'https://github.com/matheusfrozzi/SwiftHTTP'




3.3、SwiftyJSON

SwiftyJSON 也是没有提供 Swift 3 版本,所以使用热心码农的:

[Bash shell] 纯文本查看 复制代码
pod 'SwiftyJSON', :git => 'https://github.com/appsailor/SwiftyJSON.git', :branch => 'swift3'




3.4、CocoaLumberjack

CocoaLumberjack也升级一下:

[Bash shell] 纯文本查看 复制代码
pod 'CocoaLumberjack/Swift', :git => 'https://github.com/avielg/CocoaLumberjack'



其它的不再列举啦,欢迎大家在Swifthumb上回帖补充。




4、总结

Migrate to Swift 3.0 虽然麻烦,但是 Swift 3.0 版本的命名风格真的是很棒,写代码像在写小说一样。

截取几个例子,大家细细品味,具体规范请看 Swift API Design Guidelines敏捷大拇指Swifthumb.com)上有中文版本《Swift 3 API 设计准则 Swift 3 API Design Guidelines》和《Swift 3.0 API设计准则 详细内容解读 Swift 3.0 API Design Guidelines》。

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 1

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 - 敏捷大拇指 - Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 1

遵从英语语法来编写 API 接口

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 2

Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 - 敏捷大拇指 - Xcode 8 & Swift 3.0 迁移适配实战经验总结,含第三方库 2

Name Mutating/nonmutating method pairs


建议再看看:

Swift 3,这些陷阱在等你,来看我填坑吧 Swift 3 migration pitfalls
http://www.swifthumb.com/thread-14747-1-1.html




作者:azhunchen

都看到这里了,就把这篇资料推荐给您的好朋友吧,让他们也感受一下。

回帖是一种美德,也是对楼主发帖的尊重和支持。

*声明:敏捷大拇指是全球最大的Swift开发者社区、苹果粉丝家园、智能移动门户,所载内容仅限于传递更多最新信息,并不意味赞同其观点或证实其描述;内容仅供参考,并非绝对正确的建议。本站不对上述信息的真实性、合法性、完整性做出保证;转载请注明来源并加上本站链接,敏捷大拇指将保留所有法律权益。如有疑问或建议,邮件至marketing@swifthumb.com

*联系:微信公众平台:“swifthumb” / 腾讯微博:@swifthumb / 新浪微博:@swifthumb / 官方QQ一群:343549891(满) / 官方QQ二群:245285613 ,需要报上用户名才会被同意进群,请先注册敏捷大拇指

嗯,不错!期待更多好内容,支持一把:
支持敏捷大拇指,用支付宝支付10.24元 支持敏捷大拇指,用微信支付10.24元

评分

参与人数 1金钱 +10 贡献 +10 专家分 +10 收起 理由
Anewczs + 10 + 10 + 10 32个赞!专家给力!

查看全部评分

本帖被以下淘专辑推荐:

Anewczs 发表于 2016-9-20 16:35:33 | 显示全部楼层
网民立功了!Swift开发者动手能力挺强的!
创客 发表于 2016-9-20 16:38:06 | 显示全部楼层
动手能力挺强的,自己动手,丰衣足食!
linus 发表于 2016-9-20 16:54:19 | 显示全部楼层
Swift语法升级 ----> Swift核心库升级  ----> Swift第三库升级  ---->  我的Swift代码升级

这流程需要优化一下才对。
3rdev 发表于 2016-9-20 17:04:38 | 显示全部楼层
Alamofire 被替换成了 SwiftHTTP,看来Swift第三库作者也要与时俱进啊,不然就这样被抛弃…… 话说,开发者太无情啦
baddy 发表于 2016-9-20 17:40:30 | 显示全部楼层

谢谢楼主填坑之恩!
cocoaswift 发表于 2016-9-21 09:14:23 | 显示全部楼层
linus 发表于 2016-9-20 16:54
Swift语法升级 ----> Swift核心库升级  ----> Swift第三库升级  ---->  我的Swift代码升级

这流程需要优 ...

是啊,怎么优化?让苹果提供Swift完全自动升级的功能?语法改动了,这能做得到么。。。。。
攻城狮 发表于 2016-9-21 13:35:44 | 显示全部楼层
cocoaswift 发表于 2016-9-21 09:14
是啊,怎么优化?让苹果提供Swift完全自动升级的功能?语法改动了,这能做得到么。。。。。
...

有可能的,足够智能化之后,编程都不用程序员了,直接机器搞定,如何?
安卓大师 发表于 2016-9-21 17:20:27 | 显示全部楼层
多谢分享!正一团模糊呢!
女汉子 发表于 2016-9-21 18:49:16 | 显示全部楼层
baddy 发表于 2016-9-20 17:40
谢谢楼主填坑之恩!

同谢楼主填坑之恩!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

做任务,领红包。
我要发帖

分享扩散

都看到这里了,就把这资料推荐给您的好朋友吧,让他们也感受一下。
您的每一位朋友访问此永久链接后,您都将获得相应的金钱积分奖励
热门推荐

合作伙伴

Swift小苹果

  • 北京治世天下科技有限公司
  • ©2014-2016 敏捷大拇指
  • 京ICP备14029482号
  • Powered by Discuz! X3.1 Licensed
  • swifthumb Wechat Code
  •   
快速回复 返回顶部 返回列表