美文网首页
转swift3.0,XCode8遇到的坑

转swift3.0,XCode8遇到的坑

作者: 拥抱月亮的大星星 | 来源:发表于2016-09-29 09:53 被阅读216次

    由于项目是swift和oc混编,为了与时(zuo)俱进(si),我毅然决然的下了个Xcode8,开始转化工作,Xcode8支持swift2.3swift3,我哥毫无犹豫直接convert

    总结

    • 首先只转自己的代码
    • 转第三方库上的代码

    下面先说第三方库代码

    建议用cocoapods来更新,当然,手动更新一样
    比如我用到的一些第三方库的最新版(支持swift3)

     #更改的swift库(支持swift 3.0)
    pod 'SwiftyJSON', '~> 3.0.0'
    pod 'Alamofire', '~> 4.0.0'
    pod 'IQKeyboardManagerSwift', '~> 4.0.6'
    pod 'SnapKit', '~> 3.0.1'
    

    Q:1.问题来了,怎么看哪个版本支持?
    一般pod search 的版本都是最新的,注意阅读github上的README.md

    Q:2.pod search到的库不是最新的?

    执行 pod repo update更新本地仓库,本地仓库完成后,即可搜索到指定的第三方库

    Q:3.更新了版本还抱第三方一大堆错误

    打开TARGETS->Build setting->Swift Compiler - version,把Use legacy Swift Language Version改成 YES 或者 No
    这里我遇到的问题是改了依旧报swift版本错误,有的人可以

    所以我的解决办法是:

     #转swift 3.0配置swift库的swift version = 3.0
          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
    

    把上面copy到你的podfile文件去

    自己代码转化中遇到的问题

    基本上95%可以自动转化,4%手动转化,剩下的1%,没错还是要改写,因为有的代码手动转不了,得自己来重写

    1.CGSizeMake -> CGSize

    CGSize(width: width , height: height)

    更多请参考:http://stackoverflow.com/questions/37946990/cgrectmake-cgpointmake-cgsizemake-cgrectzero-cgpointzero-is-unavailable-in

    2.GCD 具体自己去 百度😂

    3.警告⚠️,好多警告,如果报Missing File

    1)打开终端
    (2)输入以下命令

    defaults write com.apple.finder AppleShowAllFiles YES
    

    (3)重启finder

    4.SnapKit

    snp_top -> snp.top
    snp_make->snp.make

    这个匹配转化下

    5.现在最蛋疼的返回值必须接受,否则警告
    这个对轻微强迫症的我😂😂

    6.极光头文件报错
    //#define JPUSH_VERSION_NUMBER 2.1.9
    我直接注释掉

    7.想到了再更新--好多都忘记了哈哈

    相关文章

      网友评论

          本文标题:转swift3.0,XCode8遇到的坑

          本文链接:https://www.haomeiwen.com/subject/yzmkyttx.html