使用NSString initWithContents OfFile读取文件时遇到问题

时间:2010-04-01 05:55:27

标签: 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" encoding:NSUTF8StringEncoding error:nil];
        NSArray *lines = [fileNameString componentsSeparatedByString:@"\n"]; 
        for (id *line in lines)
        {
            NSLog(@"Line1%@", line );
        }
    }
    return self;
}
@end

谢谢。


-(id)init
{
    if( (self = [super init]) ) 
    {
        NSString *path = @"/Users/sridhar/Desktop/Projects/exampleOnFile2/enemyDetals.txt";
        NSString *contentsOfFile = [[NSString alloc] initWithContentsOfFile:path];
        NSArray *lines = [contentsOfFile componentsSeparatedByString:@"\n"]; 
        for (id *line in lines)
        {
            NSLog(@"Line1%@", line );
        }
    }
    return self;
}
@end

1 个答案:

答案 0 :(得分:4)

您需要使用字符串指定文件的完整路径,因此问题必须与此部分有关:

... initWithContentsOfFile: @"enemyDetails.rtf" ...

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

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

如果它存储在应用程序沙箱中的另一个目录中 - 请参阅“开发人员编程指南”中的Getting Paths to Application Directories部分,了解如何获取它们的路径。