NSData writeToFile выдает сообщение «возможно, не отвечает» на iPhone SDK - PullRequest
1 голос
/ 02 декабря 2009

У меня проблема с методом NSData object -writeToFile:, так же как и с объектом NSString.

Когда я компилирую программное обеспечение, оно выдает NSData (или NSString), который может не отвечать на сообщение -writeToFile:.

Когда я запускаю программное обеспечение, оно достигает этой строки и делает исключение.

Данные, которые я пытаюсь записать в файл, содержат файл ASCII, загруженный из Интернета.

Обновление:

Я пытался получить результат в BOOL, но компиляция выдает то же предупреждение. Я что-то здесь упускаю?

Вот мой код. Если кто-нибудь может помочь.

NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [docsDirectory stringByAppendingPathComponent: Name];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = [[NSError alloc] init];

[fileManager removeItemAtPath:path error:&error];

NSURL *url = [NSURL URLWithString:@"http://www.szrt.hu/xls/luxor.csv"];

NSMutableURLRequest *liveRequest = [[NSMutableURLRequest alloc] initWithURL:url];
[liveRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];

[liveRequest setValue:@"headervalue" forHTTPHeaderField:@"headerfield"];

NSURLResponse *response;
NSData *myData = [NSURLConnection sendSynchronousRequest:liveRequest returningResponse:&response error:&error];
NSString *myString=[[NSString alloc] initWithData:myData encoding:NSASCIIStringEncoding];

[myString writeToFile:path automatically:YES encoding:NSASCIIStringEncoding];

[myData release];
[myString release];
return true;

Предупреждения следующие.

/ Пользователи / endre / Документы / Luxor / Классы / LuxorFile.m: 48: 0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48: предупреждение: «NSString» может не отвечать на «-writeToFile» : автоматически: кодирование: '

/ Пользователи / endre / Документы / Luxor / Классы / LuxorFile.m: 48: 0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48: warning: (Сообщения без соответствующей сигнатуры метода

/ Users / endre / Documents / Luxor / Classes / LuxorFile.m: 48: 0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48: предупреждение: инициализация делает целое число из указателя без приведения

/ Пользователи / endre / Документы / Luxor / Классы / LuxorFile.m: 48: 0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48: предупреждение: неиспользуемая переменная writeResult

/ Пользователи / endre / Документы / Luxor / Классы / LuxorFile.m: 68: 0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:68: предупреждение: «NSString» может не отвечать на «-writeToFile» : атомарно: кодирование: '

1 Ответ

3 голосов
/ 02 декабря 2009
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag;

- это метод, который вы хотите. Таким образом,

...
BOOL result = [data writeToFile:path atomically:atomically];
...

Должен это сделать.

...