我正在阅读Erica Sadun的 iPhone Developer's Cookbook ,并遇到了一个问题。
她在书中说,找到用户的Documents目录的方法是使用代码:
[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
但这似乎有点脆弱,并且不像普通的Mac那样做,这将是:
NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);
是否有任何特殊原因使用其中一个?
答案 0 :(得分:92)
Objc:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
夫特:
var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
您需要返回数组的第一个元素。
答案 1 :(得分:49)
以下是我在框架中使用的代码。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
答案 2 :(得分:14)
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
此方法旨在查找系统中的已知和常用目录。
标识所请求目录的NSURL对象数组。根据域掩码常量的顺序对目录进行排序,首先是用户域中的项目,最后是系统域中的项目。
答案 3 :(得分:0)
我用这个
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];
答案 4 :(得分:0)
在swift v3中,我使用了以下代码段
var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)