【问题标题】:Confused by behaviour of NSBundle对 NSBundle 的行为感到困惑
【发布时间】:2010-02-10 18:00:09
【问题描述】:

我有一个 plist 文件,它位于我的 .app 目录的 Templates 目录中。此 plist 文件已加载,因此没有任何问题:

NSDictionary *sqlPropertyList = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:CH_PQ_QUERIES ofType:@"plist"]];

我在同一目录中创建了一个 .txt 文件并尝试以相同的方式加载它:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"excel2004" ofType:@"xml"];

但filePath 始终为空,即使捆绑看起来已加载。

这里发生了什么?为什么允许 plists 位于子目录和其他文件中? plist 文件是否被意外加载,我不应该依赖这种行为?

谢谢

【问题讨论】:

  • CH_PQ_QUERIES 的值是多少?在测试 plist 加载是否有效之前,您是否清理过项目?您的应用包装器中可能仍然存在 plist 文件的旧副本。
  • 一个.txt 文件还是.xml 文件?
  • 我正在以文本形式读取的 XML 文件。

标签: objective-c cocoa nsbundle


【解决方案1】:

这可能是一个愚蠢的问题,但您说您创建了一个“txt”文件,但您对pathToResource:ofType: 的调用将xml 指定为类型。那是对的吗?当然,任何此类文件都需要位于您的应用程序包的 Resources 目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2019-04-14
    • 2014-10-21
    相关资源
    最近更新 更多