什么是Swift 3等效的NSURL.URLByAppendingPathComponent()?

前端之家收集整理的这篇文章主要介绍了什么是Swift 3等效的NSURL.URLByAppendingPathComponent()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在跟着 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命名更改。

猜你在找的Swift相关文章