升级到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请求方式修改

升级到XCode8,Swift3.0后,解决各种错误_第1张图片

未完待续。。。

你可能感兴趣的:(升级到XCode8,Swift3.0后,解决各种错误)