Objective c 从Xcode包读取文本文件

Objective c 从Xcode包读取文本文件,objective-c,xcode,macos,file,bundle,Objective C,Xcode,Macos,File,Bundle,为什么我不能阅读foo.rtf的内容?我已经把它放在Xcode包中了。fileRoot仍然包含null NSString* filePath = @"foo"; NSString* fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"]; NSLog(@"File root contains %@", fileRoot); @MateurProgrammer,谢谢你的图表。我刚刚将fo

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

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

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

@MateurProgrammer,谢谢你的图表。我刚刚将foo.rtf添加到bundle资源中。fileRoot的结果仍然为null。我还缺哪一步

目标公司在构建阶段的“复制包资源”现在包含foo.rtf。(我还是个新手,无法插入图片)


(在我可以让fileRoot正确指向后,我将添加内容读数)。

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

您得到的是零,因为您的文件不直接存在于包中


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

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

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

其次,您只获得rtf的路径,而不是rtf的内容

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

这将获得rtf的内容

谢谢你,kidsid49,这就是我错过的。我现在已经完成了这一步,但仍然有nil指针。请确保已将该文本文件添加到当前目标。您可以通过单击该文本文件来确认这一点,然后检查是否已将其添加到当前目标中。必须选中左侧inspector中的复选框以确定当前目标。是的,inspector下的目标成员资格已勾选(在项目名称的左侧)。fileRoot的指针仍然为零:(你的文件名与“foo.rtf”同名吗?你能展示一下你的代码创建文件路径的实际功能吗?我肯定不是foo。我投票支持你的答案,不仅因为它帮助了我,还因为你的昵称很棒
NSString *fileRoot = [[NSBundle mainBundle] pathForResource:filePath ofType:@"rtf"]; 
NSString *contents = [[[NSAttributedString alloc] initWithRTF:[NSData dataWithContentsOfFile:fileRoot] documentAttributes:NULL] string];