Возникли проблемы с чтением файла с помощью NSString initWithContents OfFile - PullRequest
0 голосов
/ 01 апреля 2010

В этой программе, когда я отлаживаю, она показывает ноль для fileNameString. Я не мог понять, в чем проблема. Пожалуйста, помогите мне?

@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 Ответ

4 голосов
/ 01 апреля 2010

Вам необходимо указать полный путь к файлу со строкой, поэтому проблема должна быть с этой частью:

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

Какой именно путь вам нужен, зависит от того, где вы храните ваш текстовый файл. Если это ресурс в вашем комплекте, вы можете получить путь, используя функцию -pathForResource: из NSBundle:

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

Если он хранится в другом каталоге в изолированной программной среде вашего приложения - см. Получение путей к каталогам приложений раздел «Руководства по программированию для разработчиков» о том, как получить пути для них.

...