我试图将项目从Swift 2转换为3,我面临各种问题。
首先,我使用XCode 8内置迁移工具自动转换代码,但转换后IDE显示了很多错误,例如当我将变量类型从NSURL更改为URL时我收到错误"未解析的标识符'网址' ",和其他类型相同,例如Date,Bundle,DispatchQueque ..(我已导入基金会)
其他类型的错误例如是" UIImagePickerControllerSourceType没有成员'相机' ",但检查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,Date,DateFormatter。
另一个大问题是Xcode突出显示前一行代码中的错误,当我更改代码时(例如只删除行),错误也不会消失。
有人有类似的问题吗?我不熟悉Swift,但似乎我的Xcode工作不正常。
编辑:我发现了一个解决方案,我的代码是由eclipse中的建模工具自动生成的,我刚刚在构建设置中添加了SWIFT_VERSION = 3.0,现在一切都很顺利答案 0 :(得分:0)
如果你有很多错误,可能你在尝试代码时错过了1}大括号,并且Date,URL和DateFormatter没有问题。
尝试运行您的项目,重新打开,清理,甚至重新启动Mac。