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?
答案 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