您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>通讯/手机编程>

iOS系统Xcode9.0-beta与Swift4.0怎样进行适配

大小:0.3 MB 人气: 2017-09-25 需要积分:1

  适配Xcode9.0-beta与Swift4.02017-06-13 11:30  适配Xcode9.0-beta与Swift4.0

  原文地址:http://blog.jiar.vip/2017/06/09/%E9%80%82%E9%85%8DXcode9-0-beta%E4%B8%8ESwift4.0/

  简书地址:http://www.jianshu.com/p/1f702d59e54b

  您可以通过保留原文地址或者简书地址的方式进行转载。

  这几天苹果在开WWDC2017大会,期间放出了Xcode9.0-beta以及Swift4。为了响应苹果爸爸的号召,我果断下载了Xcode9.0-beta,并在项目中拉出了新的分支,准备搞事。

  如何适配

  Xcode9.0-beta内置的Swift版本不止一个,它同时支持Swift4.0和Swift3.2。而我们正在用的Xcode8,最高只支持Swift3.1。基于这个事实,我先拉一个Xcode9.0-beta-Swift3.2的分支,待适配好Swift3.2后,再起分支Xcode9.0-beta-Swift4.0去支持Swift4.0。

  适配Swift3.2

  首先,对于Swift3.2,我的理解是:既然版本命名为3.2,那么应该只是基于3.1版本上的微调(我去查Swift,查到更多的是关于Swift4.0方面的信息)。适配Swift3.2的过程中,我的项目代码不需要任何改动,唯一出问题的是一个第三方库:Eureka,报错的原因是Collection协议的sub返回值从Array变成了ArraySlice,关于这个问题,已有人在Eureka的issues中提出(#1082)。随后有人commit修复了这个问题,并开出新分支来适配Swift3.2。

  iOS系统Xcode9.0-beta与Swift4.0怎样进行适配

  最后,我在Podfile中修改pod ‘Eureka’为pod ‘Eureka’, :git =》 ‘https://github.com/xmartlabs/Eureka.git’, :branch =》 ‘swift3.2’,完成了适配Swift3.2。

  由此可见,适配Swift3.2几乎是没有什么压力的,我也就看到Collection协议的sub返回值变动这个情况。

  适配Swift4.0

  并不是所有库都能做到及时支持Swift4.0,更何况是在现在连Xcode9也还是beta的状态,所以我们仅能做到将自己的业务代码(主工程代码)部分升级到Swift4.0,然后同时保留各种pod库在Swift3.2版本。没办法,谁叫Swift4.0也还无法做到ABI兼容呢(但愿能在Swift5之前实现吧)。至于我说的同时使用两个版本的Swift,这是没问题的,Xcode9支持在项目中同时使用Swift3.2和Swift4.0。

  具体要怎么做呢?(修改Swift版本)

  第一步,如下图指定主工程的Swift版本为4.0

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!