如何检查fileURL(withPath :)的返回值是否失败?

时间:2020-01-13 17:27:38

标签: ios swift return-value filepath

我正在将一些Objective-C代码转换为Swift。 Objective-C看起来像:

NSURL *urlPathForScans = [NSURL fileURLWithPath:sDirIn];
if (nil != urlPathForScans) { 
    // some code…

并且我已经将该代码转换为此:

var urlPathForScans = NSURL.fileURL(withPath: sDirIn)
if urlPathForScans != nil  {
    // some code …

在构建时会给我以下警告:

将“ URL”类型的非可选值与“ nil”进行比较总是返回true

NSURL.fileURL(withPath:)的Swift文档没有以任何方式暗示返回值可能指示失败,尽管显然提供的path参数可能无效。如果sDirIn不是有效路径,如何在此处正确检查返回值是否失败?

2 个答案:

答案 0 :(得分:2)

在Swift <script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>中返回一个非可选值,不能为fileURLWithPath

并且请使用本机nil而不是URL

NSURL

您可以检查网址是否有效

let urlPathForScans = URL(fileURLWithPath: sDirIn)

if FileManager.default.fileExists(atPath: sDirIn) {

}

答案 1 :(得分:1)

似乎这种方法永远不会失败。在Objective-C代码中的检查是多余的。稍后尝试通过此URL提取文件时,需要对nil进行检查。