升級到XCode8,Swift3.0後,解決各種錯誤

weixin_33797791發表於2017-03-30

升級到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

2820466-f040aaefa9fd8ae4.jpg

7:快捷鍵失效,比如註釋Command + /

終端輸入以下命令,重啟系統,不是XCode

$sudo /usr/libexec/xpccachectl

8:Alamofire請求方式修改

2820466-3f2dd61098bb00f3.png

未完待續。。。

相關文章