目标 C:读取文本文件

发布于 2024-10-18 05:30:56 字数 470 浏览 4 评论 0原文

我以前这样做过,但现在对我不起作用。我正在做:

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

每次​​当我 NSLog 路径和内容时它都会返回 (null) 。谁能看到我做错了什么吗?

I've done this before, but its not working for me now. I'm doing:

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

and it returns (null) every time when I NSLog path and content. Can anyone see what I'm doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月依秋水 2024-10-25 05:30:56

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

您应该:

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

如果它被复制了,但 NSBundle 的相关实例找不到它,那么就会出现非常奇怪的情况。

content will be nil (which logs as '(null)') if you pass it a path it can't open. So your only issue is that the relevant instance of NSBundle is unable to find test.txt within the resources part of your application bundle.

You should:

  1. check the file is in your Xcode project; and, if it is,
  2. check it's included in the 'Copy Bundle Resources' phase underneath your selected Target (in the project tree view on the left in the normal Xcode window layout) and, if it is,
  3. look inside the generated application bundle (find your product, right click, select 'Reveal in Finder', from Finder right click on the app and select 'Show Package Contents', then look for your file in there) to make sure that it's there.

If it's copied in but the relevant instance of NSBundle can't find it then something very strange is afoot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文