【问题标题】:About NSSearchPathForDirectoriesInDomains关于 NSSearchPathForDirectoriesInDomains
【发布时间】:2012-01-19 01:29:27
【问题描述】:

我花了很长时间,但在以下问题上没有运气:

我试图访问 Document 目录。

以下两个代码都可以完美运行。有人能告诉我有什么区别吗 最后一个对象和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。它只说'此方法返回的目录可能不存在。此方法只是为您提供所请求目录的适当位置。根据应用程序的需要,开发人员可能会创建适当的目录以及介于两者之间的任何目录。有人请帮忙,谢谢。

【问题讨论】:

    标签: iphone ios


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      如果您使用NSAllDomainsMask 查看,searchPaths 可能包含多个目录。

      从 Xcode 5 开始,最佳实践是:

      NSString *documentPath = [searchPaths firstObject];
      

      【讨论】:

        猜你喜欢
        • 2013-05-09
        • 2010-11-13
        • 2014-08-06
        • 1970-01-01
        • 2011-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        相关资源
        最近更新 更多