为什么我不能阅读foo.rtf的内容?我已经把它放在XCode包中了。 fileRoot仍然包含null。
NSString* filePath = @"foo";
NSString* fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"];
NSLog(@"File root contains %@", fileRoot);
感谢任何人的帮助。
@TheAmateurProgrammer,谢谢你的图表。我刚刚将foo.rtf添加到了bundle资源中。 fileRoot的结果仍为null。我还缺什么步骤?
Build Phases中Target的“Copy Bundle Resources”现在包含foo.rtf。 (我不能插入图片,因为我还是新手)。
(在我可以正确指出fileRoot之后,我会添加内容读数。)
答案 0 :(得分:8)
您添加了该文件,但它是否真的已复制到您的应用程序包中?
http://f.cl.ly/items/1d3y2d3b101C0g07462N/Screen%20Shot%202012-10-21%20at%203.08.44%20PM.png
确保您的rtf文件已复制到您的资源中。
其次,你只得到rtf的路径,而不是rtf的内容。
NSString *fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"];
NSString *contents = [[[NSAttributedString alloc] initWithRTF:[NSData dataWithContentsOfFile:fileRoot] documentAttributes:NULL] string];
这将获得rtf的内容。
答案 1 :(得分:0)
首先检查您的文件是否存在于包中,如果存在,则必须与“foo.rtf”具有相同的名称。
由于您的文件不在包中直接存在,因此您将获得nil。
一旦获得正确的文件路径,就可以通过在NSString类上调用initWithContentsOfFile方法将文本文件的内容作为字符串获取。