Кешировать json асинхронно - PullRequest
2 голосов
/ 26 мая 2011

Я занимаюсь разработкой приложения для iOS, которое получает данные из фида json моего сервера.С анализом строки проблем не возникает ... Однако у меня возникают проблемы с асинхронной загрузкой строки и последующим ее кэшированием.Я нашел SDURLCache, но не знаю, как это реализовать.Каков наилучший способ сделать это.

1 Ответ

2 голосов
/ 30 мая 2011

Вы можете загрузить файл на диск (синхронно):

NSURL * url = [NSURL URLWithString:@"www.yourprovider.com/your.json";
NSData *file = [NSData dataWithContentsOfURL:url];
[file writeToFile:<your file path> atomically:YES];

Для асинхронных операций вместо этого вы должны использовать NSURlConnection. После открытия соединения

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:<your NSURL>];

    [request setHTTPMethod:@"GET"];

    NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
    [conn start];

вы получаете данные в этом обратном вызове:

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)_data {

 //here you could write to a NSFileHandle ivar:
 if (file)  { 

        [file seekToEndOfFile];

    } [file writeData:_data];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...