微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是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命名更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐