我試圖將項目從Swift 2翻譯成3,而且我面臨着各種各樣的問題。在Xcode 8和Swift 3中未解決的標識符錯誤
首先,我已經使用了XCode 8內置的自動轉換代碼的遷移工具,但轉換後,IDE向我顯示了很多錯誤,例如,當我將變量類型從NSURL更改爲URL I得到錯誤「無法解析的標識符'URL'」,並且其他類型如Date,Bundle,DispatchQueque也是如此。(我已經導入Foundation)
其他類型的錯誤例如「UIImagePickerControllerSourceType has no member 'camera'「,但檢查documentation這似乎是正確的。
在這裏有一個代碼片段:這裏
func createFileUrl() -> URL {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd_HH-mm-ss"
let fileName: String = dateFormatter.string(from: Date()) + (".m4a")
let filePath: String = getCacheDirectory() + ("/\(fileName)")
self.recordedAudioUrl = URL(fileURLWithPath: filePath)
return self.recordedAudioUrl
}
的錯誤是未解決的標識符:URL,日期,DateFormatter。
另一個大問題是,Xcode突出顯示了上一行代碼中的錯誤,並且當我更改代碼(例如也只是刪除行)時,錯誤不會消失。
有人有類似的問題嗎?我對Swift不熟悉,但似乎我的Xcode工作不正常。
編輯:我發現了一個解決方案,我的代碼是自動生成在Eclipse中建模工具,我只是說SWIFT_VERSION = 3.0在構建設置,現在一切順利
你確定你已經更新到Swift 3(不是Swift 2.3)嗎?嘗試清理項目(⇧⌘K) – vadian
關閉Xcode,重新打開。 –
我試圖重新打開許多次沒有任何改變。我已經更新到swift 3,清理項目說:clean failed –