我正在跟着
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类的参考(或者Swift 3接口到库中定义了URL类 – 我仍然不能完全理解命名),所以我可以自己研究这些未来?
从Xcode 8 beta 4起,它被命名为
appendingPathComponent(_:)
,不会抛出。
static let archiveURL = documentsDirectory.appendingPathComponent("meals")
另外作为Leo Dabus points out in the comments,您的documentsDirectory属性将需要更改以使用beta 4中的urls(for:in:)
:
static let documentsDirectory = FileManager.default.urls(for: .documentDirectory,in: .userDomainMask)[0]
(请注意,我已经将您的属性名为lowerCamelCase,根据Swift API design guidelines.我还建议使用FileManager.default,而不是创建一个新的实例。)
您可以查看Apple’s latest API reference guide查看Swift 3中发生的API命名更改。