Цель C Получение данных и сохранение их в виде XML-файла для чтения без подключения к Интернету. - PullRequest
0 голосов
/ 07 августа 2011

У меня есть этот метод, чтобы получить XML-файл из Google Reader с содержанием чтения каналов. Я хочу сохранить данные локально (я уверен, что данные представляют собой XML-файл), как я могу сделать ??? Я могу хранить данные локально, чтобы прочитать их позже без подключения к интернету? Как я могу сделать? спасибо

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
    NSLog(@"------------------------------- connectionDidReceiveResponse");
    expectedResponseLength = [NSNumber numberWithFloat:[aResponse expectedContentLength]];
    URLresponse = aResponse;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{   
    NSLog(@"------------------------------- connectionDidReceiveData: %@", data);
    //float l = [responseData length];
    //[delegate GoogleReaderRequestReceiveBytes:l onTotal:[expectedResponseLength floatValue]];


    //TESTING
    NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    NSLog(@"the  data %@",string);


    [self.responseData appendData:data];
}

РЕДАКТИРОВАТЬ **

Я ИСПОЛЬЗУЮ ЭТОТ КОД, НО НЕ РАБОТАЕТ

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
    NSLog(@"------------------------------- connectionDidReceiveResponse");
    expectedResponseLength = [NSNumber numberWithFloat:[aResponse expectedContentLength]];
    URLresponse = aResponse;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{   
    NSLog(@"------------------------------- connectionDidReceiveData: %@", data);
    //float l = [responseData length];
    //[delegate GoogleReaderRequestReceiveBytes:l onTotal:[expectedResponseLength floatValue]];


    //TESTING
    NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    NSLog(@"the  data %@",string);
    NSString *path=@"Library/News";
    [data writeToFile:path atomically:YES];

    [self.responseData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite;
{
    NSLog(@"------------------------------- connectionDidSendBodyData: %d", totalBytesWritten);
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)theError
{
    NSLog(@"------------------------------- connectionDidFailWithError: %@", [theError localizedDescription]);

    self.responseData = nil;
    NSString *path=@"Library/News";
    NSData *data = [[NSData alloc] initWithContentsOfFile:path];
    [self.responseData appendData:data];

    [delegate GoogleReaderRequestDidFailWithError:theError];
}

1 Ответ

5 голосов
/ 07 августа 2011

Вы можете использовать метод writeToFile:atomically: для хранения вашего объекта NSData.
Пример:

[data writeToFile:path atomically:YES];
...