在Xcode 8和Swift 3中未解决的标识符错误

问题描述:

我试图将项目从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 –

如果你有很多的错误,可能您错过了1}大括号,因为我尝试了您的代码,并且Date,URL和DateFormatter没有问题。

尝试运行您的项目,重新打开,清理,甚至重新启动您的Mac。