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

我正在读Erica Sadun的iPhone Developer's Cookbook ,遇到了一个问题。

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

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

但是这看起来有些脆弱,并且与Mac正常的做法不一样,这将是:

 NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES); 

有没有什么特别的原因可以相互使用呢?

Objc:

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

迅速:

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

你会想要返回数组的第一个元素。

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

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

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

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

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

标识所请求目录的NSURL对象数组。 目录按照域掩码常量的顺序进行sorting,其中用户域中的项和系统域中的项最后一项。

我用这个

 NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *zipLocalPath = [documentPath stringByAppendingString:fileName]; 

在swift v3中,我使用了下面的代码片断

 var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)