Задача c: чтение NSString NSData из файла - PullRequest
6 голосов
/ 12 августа 2010

Я использую:

NSData *output1 = [NSData dataWithContentsOfFile:@"~/centralUtilOut.tmp"];
NSString *output = [[NSString alloc]initWithData:output1 encoding:NSUTF8StringEncoding];

NSLog(@"%@", output);
[output release];

Но в окне отладки ничего нет.

Это в цели C.

Примечание: centralUtilOut.tmp являетсяобычный текстовый файл

Ответы [ 2 ]

18 голосов
/ 12 августа 2010

Проблема в спецификации пути.

Кажется, что NSData -dataWithContentsOfFile: не расширяется ~.

Это работает, когда вы используете полный путьили разверните тильду в пути:

NSData *output1 = [NSData dataWithContentsOfFile:
                      [@"~/centralUtilOut.tmp" stringByExpandingTildeInPath]];
NSString *output = [[NSString alloc]initWithData:output1 
                                        encoding:NSUTF8StringEncoding];

NSLog(@"%@", output);
[output release];
2 голосов
/ 12 августа 2010

Эта тильда в пути заставляет меня думать, что ваш путь к файлу может обрабатываться неправильно.Взгляните на метод -stringByExpandingTildeInPath NSString, чтобы развернуть путь до полного, абсолютного пути.

Например: NSData *output1 = [NSData dataWithContentsOfFile:[@"~/centralUtilOut.tmp" stringByExpandingTildeInPath]];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...