控制台应用程序 - NSBundle无法获取文件路径

时间:2013-05-10 02:11:37

标签: objective-c macos foundation

Mac控制台应用程序的新功能。从来没有这样做过,但我想用Objective-C编写代码,所以在用Xcode创建应用程序时选择了“Foundation”。

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        NSString *contentPath = [[NSBundle mainBundle] pathForResource:@"Input" ofType:@"txt"];
        NSLog(@"%@",contentPath);

    }
    return 0;
}

路径为空。

我在这里找到了一个答案:来自相关问题的https://stackoverflow.com/a/7835776/555690,但它没有修复它。

然后我看了Getting a nil path from NSBundle,但他们遇到的问题是一个目录(我没有目录 - 我只是将我的文件放在项目的根目录中)。

为什么我可以为此文件的路径获取null?

2 个答案:

答案 0 :(得分:3)

您的应用程序没有捆绑包(这是一个特殊结构化的目录),因此捆绑资源查找不会查找任何内容。

答案 1 :(得分:1)

它出现了null,因为通常当你有一个带有捆绑资源的.app时,你需要将一个名为Input.txt的文件添加到Supporting Files文件夹或Resources文件夹中。由于您正在编写控制台应用程序,我不明白为什么要这样做。

在将Input.txt添加到支持文件之前:

2013-05-09 19:23:40.228 tester[2847:303] (null)

将Input.txt添加到支持文件后:

2013-05-09 19:21:00.306 tester[2807:303] /Developer/Xcode/DerivedData/tester-gjrofdlcblvmplbjdvvfhieiymzh/Build/Products/Debug/tester.app/Contents/Resources/Input.txt