4

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,但他们遇到的问题是一个目录(我没有目录 - 我只是将我的文件放在项目的根目录中)。

为什么我会为这个文件的路径设置为空?

4

2 回答 2

3

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

于 2013-05-10T02:14:31.083 回答
1

它会出现空值,因为通常当您有一个包含捆绑资源的 .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
于 2013-05-10T02:24:12.807 回答