当前位置:  开发笔记 > 编程语言 > 正文

在iPhone上找到用户的Documents目录的最佳方法是什么?

如何解决《在iPhone上找到用户的Documents目录的最佳方法是什么?》经验,为你挑选了3个好方法。

我正在阅读Erica Sadun的iPhone开发者手册,并遇到了一个问题.

她在书中说,找到用户的Documents目录的方法是使用代码:

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

但这似乎有点脆弱,并且不像普通的Mac那样做,这将是:

NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);

是否有任何特殊原因使用一个而不是另一个?



1> Ben Gottlieb..:

Objc:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

迅速:

var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)

您将需要返回数组的第一个元素.


您可以使用另一种方式,但如果升级到操作系统更改了默认结构,则保证此答案仍然适用于新布局,而第一种方法将失败或开始重新创建旧目录.

2> 小智..:

这是我在框架中使用的代码.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];


或者"NSString*documentsDirectory = paths [0];"
或者`paths.firstObject`,因为它是一个`属性`.
从Xcode 5开始,你应该使用`[paths firstObject]`而不是`[paths objectAtIndex:0]`.

3> Zelko..:

您应该考虑使用返回URL的NSFileManager方法,这是首选格式.

let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL

此方法旨在查找系统中的已知和常用目录.

标识所请求目录的NSURL对象数组.根据域掩码常量的顺序对目录进行排序,首先是用户域中的项目,最后是系统域中的项目.


那是对的.我们的知识应该升级,在iOS中我们应该使用NSURL而不是NSString(用于路径)来表示本地文件.
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有