对NSBundle的行为感到困惑

时间:2010-02-10 18:00:09

标签: objective-c cocoa nsbundle

我有一个plist文件,它位于名为Templates of my .app目录的目录中。这个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文件是意外加载的,我不应该依赖这种行为吗?

由于

1 个答案:

答案 0 :(得分:2)

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