4

为什么我无法读取 foo.rtf 的内容?我已经把它放在 Xcode 包中了。fileRoot 仍然包含 null。

NSString* filePath = @"foo";
NSString* fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"];       

NSLog(@"File root contains %@", fileRoot);

@TheAmateurProgrammer,谢谢你的图表。我刚刚将 foo.rtf 添加到捆绑资源中。fileRoot 的结果仍然为空。我还缺少什么步骤?

构建阶段中 Target 的“复制捆绑资源”现在包含 foo.rtf。(我不能插入图片,因为我还是个新手)。

(我会在我可以让 fileRoot 正确指向之后添加内容读取)。

4

2 回答 2

8

您添加了文件,但它真的复制到了您的应用程序包中吗?

确保将您的 rtf 文件复制到您的资源中。

其次,你只得到 rtf 的路径,而不是 rtf 的内容。

NSString *fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"]; 
NSString *contents = [[[NSAttributedString alloc] initWithRTF:[NSData dataWithContentsOfFile:fileRoot] documentAttributes:NULL] string];

这将获得 rtf 的内容。

于 2012-10-21T07:15:10.033 回答
0

首先检查您的文件是否存在于包中,如果存在,它必须与“foo.rtf”同名。

你得到 nil 因为你的文件没有直接存在于包中。

一旦获得正确的文件路径,您就可以通过调用 NSString 类的 initWithContentsOfFile 方法将文本文件的内容作为字符串获取。

于 2012-10-21T07:08:36.570 回答