升级到XCode8,Swift3.0后,解决各种错误

升级到XCode8,Swift3.0后,解决各种错误。

1:**Optional unwrap的问题**

此问题最严重,导致上线出现bug。

Swift3中,尽量避免隐式声明类型,或“\(xx)”来获取。

let host: String! = "https://host.io/"

let urlString = "\(host)oauth/access_token"

Optional("https://host.io/")oauth/access_token

2:使用CocoaPods时,报以下错误

no such module 'xxx'....

解决办法:

pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :tag => 'v1.1.0',:submodules =>true

3:使用CocoaPods时,第三方release还未升级到Swift3.0时

解决办法:

一般使用率比较高的第三方,其在分支上都已支持Swift3.0,只是还未release。

pod 'XCGLogger', :git => 'https://github.com/DaveWoodCom/XCGLogger.git',:branch =>'swift_3.0'

另外在最后加上以下

post_install do |installer|

installer.pods_project.targets.each do |target|

target.build_configurations.each do |config|

config.build_settings['ENABLE_BITCODE'] = 'NO'

config.build_settings['SWIFT_VERSION'] = '3.0'      #swift 2.3or '2.3'

end

end

end

4:XCode编译的过程中,停止不动了

以前遇到此情况,也未报错,很奇怪。

实在没有办法,通过command line编译,定位到卡在哪个文件,处理后就OK了。

(默认是未安装,通过以下命令,先安装)

MacBook-Pro:1.4.7 chengfei.heng$xcode-select --install

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

MacBook-Pro:1.4.7 chengfei.heng$xcodebuild -workspace 'xxx.xcworkspace' -scheme 'xxx'

5:AnyObject和Any

以前的理解换成了Any,参考:http://kuczborski.com/2014/07/29/any-vs-anyobject/

6:需要声明类型,如果未声明,则出现以下错误

unrecognized selector sent to instance 0x618000450a10

7:快捷键失效,比如注释Command + /

终端输入以下命令,重启系统,不是XCode

$sudo /usr/libexec/xpccachectl

8:Alamofire请求方式修改

未完待续。。。

推荐阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 3,739评论 0 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,850评论 18 138
  • 物质是骗局 文字也不过游戏 明白或疑惑都会去寻找 直到遇上那片蓝天 然后就在那苍穹下 向着虚无大吼或者静默 即使孤...
    Pirate_Z阅读 47评论 0 0
  • 2017年6月19日 咖啡冥想 我的近期目标是:财富种子(还清卡债5千) 所以我的咖啡冥想是一切和金钱有关,照顾他...
    林小琬阅读 56评论 0 0
  • 目录 上一章 菜园子里一旦过了秋季,便会开始颓败起来了。那时茄子,丝瓜,苦瓜,豆角,西红柿,辣椒那些在春季播种的蔬...
    数数扁桃阅读 224评论 3 12