2016-11-26 108 views
1

我試圖將項目從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在構建設置,現在一切順利

+0

你確定你已經更新到Swift 3(不是Swift 2.3)嗎?嘗試清理項目(⇧⌘K) – vadian

+0

關閉Xcode,重新打開。 –

+0

我試圖重新打開許多次沒有任何改變。我已經更新到swift 3,清理項目說:clean failed –

回答

0

如果你有很多的錯誤,可能您錯過了1}大括號,因爲我嘗試了您的代碼,並且Date,URL和DateFormatter沒有問題。

嘗試運行您的項目,重新打開,清理,甚至重新啓動您的Mac。

相關問題