Xcode 8和Swift 3

时间:2016-11-26 14:02:34

标签: ios swift swift3 xcode8 code-translation

我试图将项目从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,现在一切都很顺利

1 个答案:

答案 0 :(得分:0)

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

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