繁体   English   中英

'stringByAppendingPathComponent'不可用

[英]'stringByAppendingPathComponent' is unavailable

我收到了错误

'stringByAppendingPathComponent' is unavailable: Use 'stringByAppendingPathComponent' on NSString instead.

当我尝试做的时候

let documentsFolder = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let databasePath = documentsFolder.stringByAppendingPathComponent("test.sqlite")

这显然对以前的人有用,但现在在Xcode 7 beta 5中对我不起作用。

Apple Developer论坛上的这个主题有建议使用扩展或直接转换为NSString 但是,如果我将它转换为NSString

let databasePath = documentsFolder.stringByAppendingPathComponent("test.sqlite" as NSString)

然后我得到了错误

'NSString' is not implicitly convertible to 'String'...

它通过插入as String给我选择“修复它”,这使我们回到原始错误。

stringByAppendingPathExtension也会发生这种情况。

我该怎么办?

您可以创建URL而不是String路径。

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
let fileURL = documentsURL?.appendingPathComponent("test.sqlite")

如果你绝对需要路径,那么你可以这样得到它:

guard let path = fileURL?.path else {
    return
}

print(path) // path will exist at this point

在您提到的主题中有一些讨论,Apple可能会故意指导人们使用URL而不是String路径。

也可以看看:

您可以使用:

let dbPath = (documentsFolder as NSString).stringByAppendingPathComponent("db.sqlite")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM