【问题标题】:What is the basic file structure in an iOS application?iOS 应用程序中的基本文件结构是什么?
【发布时间】:2011-04-08 04:40:39
【问题描述】:

我正在尝试使用

在我的应用程序中加载 plist 文件
NSBundle* bundle = [NSBundle mainBundle];
NSString* plistPath = [bundle pathForResource:@"CategoryData" ofType:@"plist"];
categoryProps = [[NSArray alloc] initWithContentsOfFile:plistPath];

但是 categoryProps 数组总是以 0 个对象结束。我已将 CategoryData.plist 文件放在我的项目中的“支持文件”目录下,但我无法弄清楚文件在编译的应用程序中的排列方式。

有人可以向我指出描述应用程序文件系统布局以及如何确定文件在文件系统中的位置的文档吗?

我忘了指出我使用的是 XCode 4,它不会为项目创建资源文件夹

【问题讨论】:

    标签: ios filesystems plist


    【解决方案1】:

    您的加载代码代码应该适用于在文件系统中定位文件。在一个项目中,我有:

    NSString *data = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
    

    我要做的是将 plistPath 记录到控制台或在调试器中检查它,然后导航到磁盘上的该位置并确定 plist 是否以您认为的位置结束。

    另外,在 /Users//Library/Developer/Xcode/DerivedData//Build/Products/Debug-iphonesimulator/.app 中找到您的应用程序包,右键单击它并选择“显示包内容”。确保在您认为应该看到的位置看到您的 plist。

    【讨论】:

      【解决方案2】:

      您需要将 plist 文件放在 Resources 文件夹中。然后你就可以像这样加载和使用它们了

      NSString *path = [[NSBundle mainBundle] bundlePath];
      NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"];
      NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
      

      UPD:​​> 在 xcode4 中,您必须将 plist 文件放在“Supporting Files”目录而不是“Resources”目录中。并尝试使用 NSDictionary 而不是 NSArray

      【讨论】:

      • @Neuromit 正在谈论 Xcode 4 文件夹结构。那里没有 Resources 文件夹,但有一个 Supporting Files 文件夹。
      • 好的。我在 xcode4 中工作,但我的项目是在 3d 版本中创建的。实际上,如果将资源文件添加到项目中,那么将它们存储在哪里并不重要,然后可以加载它们。
      • 使用字典代替数组解决了这个问题,谢谢!
      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 2014-03-17
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      相关资源
      最近更新 更多