swift - NSURL.URLByAppendingPathComponent() 的 Swift 3 等价物是什么?

标签 swift xcode nsurl swift3

我正在关注 a basic tutorial关于在 Swift 中构建一个简单的 iOS 应用程序。

它是用 Swift 2.x 编写的,我使用 XCode 8 Beta 和 Swift 3。

本教程建议使用 NSFileManager 查找数据目录。类名已更改,因此自动修复的 Swift 3 看起来像这样:

static let DocumentsDirectory = FileManager().urlsForDirectory(.documentDirectory, inDomains:.userDomainMask).first!
static let ArchiveURL = DocumentsDirectory.URLByAppendingPathComponent("meals")

但是,Xcode 现在会提示

Value of type 'URL' has no member 'URLByAddingPathComponent'

我现在无法找出调用的方法是什么。

NSURL Class Reference不包含任何关于如何从 Swift 3 解决它的提示

  • 新方法名称是什么?

  • 我必须去哪里才能找到 Swift 3 的完整类引用(或者,URL 类在其中定义的库的 Swift 3 接口(interface) - 我仍然不知道完全理解命名法)以便我以后自己研究这些?

最佳答案

从 Xcode 8 beta 4 开始,它被命名为 appendingPathComponent(_:) , 并且不会抛出。

static let archiveURL = documentsDirectory.appendingPathComponent("meals")

也为 Leo Dabus points out in the comments ,您的 documentsDirectory 属性需要更改才能使用 urls(for:in:)在测试版 4 中:

static let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

(请注意,我已根据 Swift API design guidelines 将您的属性名称设为 lowerCamelCase。我还建议使用 FileManager.default,而不是创建一个新实例。)

可以看看Apple's latest API reference guide查看 Swift 3 中发生的 API 命名更改。

关于swift - NSURL.URLByAppendingPathComponent() 的 Swift 3 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812240/

相关文章:

xcode - 使用 VSTS 构建 ionic 应用并将其部署到 android 和 IOS

ios - 使用 SQLite Swift4 时出错 : multi-threaded access to database connection

ios - 如何递归搜索具有良好性能的XCUIElement树?

iphone - NSURL 的结果不一致

ios - 如何删除文件大小小于特定大小(字节)的文件夹内的所有文件

ios - 更改 iOS 滑动操作的 bool 值

swift - 如果无法访问所有这些,则继续

ios - GradientLayer 中的 Swift -Animation 未出现在单元格中

ios - Objective C 中类似 Swift 的结构

swift - 从 url 异步下载和缓存图像