目标C:阅读文本文件

Chr*_*ris 63 text bundle objective-c ios

我以前做过这个,但它现在不适合我.我正在做:

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSLog(@"%@",path);
Run Code Online (Sandbox Code Playgroud)

并且(null)每当我NSLog路径和内容时它返回.谁能看到我做错了什么?

Tom*_*mmy 49

如果您传递无法打开的路径,则内容将为nil(记录为"(null)").因此,您唯一的问题是NSBundle的相关实例无法在应用程序包的资源部分中找到test.txt.

你应该:

  1. 检查文件是否在Xcode项目中; 而且,如果是的话,
  2. 检查它是否包含在所选目标下的"复制包资源"阶段(在正常Xcode窗口布局左侧的项目树视图中),如果是,
  3. 查看生成的应用程序包内部(找到您的产品,右键单击,选择'在Finder中显示',从Finder中右键单击应用程序并选择'显示包内容',然后在那里查找您的文件)以确保它在那里.

如果它被复制但是NSBundle的相关实例找不到它,那么就会发生一些非常奇怪的事情.

  • 那是因为当我写下我的答案时,评论还没有出现,而且当你发布新评论时,StackOverflow会让你发出警告,如果你在打字时出现了其他答案,那么它就会出现.启动Xcode并检查我是否指示Chris到正确的位置检查事情显然至少需要2分钟. (20认同)