关于NSSearchPathForDirectoriesInDomains

时间:2011-12-13 05:27:06

标签: iphone ios

我花了很长时间但没有运气跟随问题:

我试图访问Document目录。

以下代码均可完美运行。有人能告诉我它们之间的区别     last object和objectAtIndex:0

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths lastObject];

NSString *documentPath = [searchPaths objectAtIndex:0];

最接近的问题是How to get URL for application's document directory iPhone,但它没有解释lastObject和objectAtIndex之间的区别:0。

我已阅读Apple Developer Library。它只说'此方法返回的目录可能不存在。此方法只是为您提供所请求目录的适当位置。根据应用程序的需要,可能由开发人员创建适当的目录以及介于两者之间的任何目录。有人请帮忙,谢谢。

2 个答案:

答案 0 :(得分:3)

在这种情况下,[searchPaths lastObject][searchPaths objectAtIndex:0]之间没有区别,因为searchPaths只包含一个条目。用户域只包含一个文档目录。

如果你试试这个,你会得到不同的结果:

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(
    NSApplicationDirectory, NSAllDomainsMask, YES);

答案 1 :(得分:0)

如果查看searchPaths

NSAllDomainsMask可能包含多个目录。

从Xcode 5开始,最佳做法是:

NSString *documentPath = [searchPaths firstObject];