【问题标题】:Create Array of Strings from Group Contents从组内容创建字符串数组
【发布时间】:2014-11-18 08:40:47
【问题描述】:

我的项目支持文件的组文件夹中有 3 个 xml 文件。我正在尝试为组文件夹中的每个文件创建一个包含文件名的数组,作为字符串。

示例...名为 XLMS 的组文件夹

XMLS
   one.xml
   two.xml
   three.xml

我展示的方式仅适用于文件位于实际文件夹(蓝色)中的情况。我怎样才能对组文件夹(黄色)做同样的事情?请帮忙,谢谢。

viewDidLoad

NSMutableString* bundlePath = [NSMutableString stringWithCapacity:4];

[bundlePath appendString:[[NSBundle mainBundle] bundlePath]];

[bundlePath appendString:@"/XMLS"];

NSArray *stringArray  = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundlePath error:nil];

[stringArray description];

【问题讨论】:

  • 黄色文件夹是Xcode管理的一个虚拟组,与main bundle中的目录层次无关。
  • 有没有办法获取组内的内容?请提出我可以尝试的建议。
  • 是的,它们都在您的捆绑路径中。 :)
  • 组在最终的应用程序包中不存在。组只是在项目中组织文件的一种方式,而不是在构建的应用程序中。

标签: ios objective-c arrays nsfilemanager nsbundle


【解决方案1】:

文件夹引用将在包中创建一个目录,让您找出内容。通过使用组,您无法做到这一点。如果您坚持使用 a Group,则可以选择创建一个清单,其中包含您想要的文件的名称。

请注意,这更容易出错,因为您需要确保清单包含正确的文件名(即,如果您更改文件名,则需要确保更新清单)并且您还需要加载清单第一的。在这种情况下,您为什么不想使用文件夹引用?如果您将清单设为 plist,您可以自动将其加载为数组,执行以下操作:

NSMutableArray *stringArray = [NSArray arrayWithContentsOfFile:manifestPath];

【讨论】:

  • 仅使用文件夹参考证明是最好的方法。谢谢你的回答。
【解决方案2】:

我选择将文件保存在文件夹引用(蓝色文件夹)中。提供的代码与我的问题相同。它适用于创建与文件夹引用中的文件名匹配的字符串数组。

viewDidLoad

NSMutableString* bundlePath = [NSMutableString stringWithCapacity:4];

[bundlePath appendString:[[NSBundle mainBundle] bundlePath]];

[bundlePath appendString:@"/XMLS"];

NSArray *stringArray  = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundlePath error:nil];

[stringArray description];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2016-01-24
    • 2011-06-17
    相关资源
    最近更新 更多