Cocoa touch 使用NSString initWithContents of文件读取文件时遇到问题

Cocoa touch 使用NSString initWithContents of文件读取文件时遇到问题,cocoa-touch,iphone-sdk-3.0,nsstring,Cocoa Touch,Iphone Sdk 3.0,Nsstring,在这个程序中,当我调试时,它显示fileNameString的nil。我不明白是什么问题。请帮帮我 @implementation fromFileRead1 NSString *fileNameString; -(id)init { if( (self = [super init]) ) { fileNameString = [[NSString alloc] initWithContentsOfFile: @"enemyDetails.rtf" encod

在这个程序中,当我调试时,它显示fileNameString的nil。我不明白是什么问题。请帮帮我

@implementation fromFileRead1
NSString *fileNameString;

-(id)init
{
    if( (self = [super init]) ) 
    {
        fileNameString = [[NSString alloc] initWithContentsOfFile: @"enemyDetails.rtf" encoding:NSUTF8StringEncoding error:nil];
        NSArray *lines = [fileNameString componentsSeparatedByString:@"\n"]; 
        for (id *line in lines)
        {
            NSLog(@"Line1%@", line );
        }
    }
    return self;
}
@end
多谢各位



您需要使用字符串指定文件的完整路径,因此此部分肯定存在问题:

... initWithContentsOfFile: @"enemyDetails.rtf" ...
您需要的确切路径取决于您存储文本文件的位置。如果它是捆绑包中的资源,则可以使用
-pathForResource:
函数从
NSBundle
获取路径:

NSString *fPath = [[NSBundle mainBundle] pathForResource:@"enemyDetails" ofType:@"rtf"];

如果它存储在应用程序沙箱中的另一个目录中-请参阅“开发人员编程指南”中有关如何获取路径的部分。

您需要使用字符串指定文件的完整路径,因此此部分一定存在问题:

... initWithContentsOfFile: @"enemyDetails.rtf" ...
您需要的确切路径取决于您存储文本文件的位置。如果它是捆绑包中的资源,则可以使用
-pathForResource:
函数从
NSBundle
获取路径:

NSString *fPath = [[NSBundle mainBundle] pathForResource:@"enemyDetails" ofType:@"rtf"];

如果它存储在应用程序沙箱中的另一个目录中,请参阅“开发人员编程指南”中关于如何获取路径的部分。

我是用另一种方式做的。我得到了我需要的。但是,前面的方法有什么错呢。请建议。我们能不能用它?我用另一种方法。我得到了我需要的。但是,前面的方法有什么错呢。请建议。我们能不能用它?嗨,谢谢你,我想不需要完整的路径。正如,它适用于我的.png文件,我认为它也适用于此。您好,谢谢,我认为不需要完整的路径。因为,它适用于我的.png文件,我认为它也适用于此。