我正在关注 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/