Всем привет! Товарищи, выручайте!
Вообщем у меня есть несколько GET запросов. Не могу корректно сохранить данные при распарсивании. Подскажите, пожалуйста, как лучше реализовать сохранение?
Попробовал через dispatch_async, но не селен в этом (ничего не получилось).
Сохраняю в homesJSON и roomsJSON.
Сначала сделал так.
#pragma mark Processing the received response
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSInteger responseStatusCode = [httpResponse statusCode];
NSLog(@"Код сервера = %li", (long)responseStatusCode);
// получен ответ от сервера
[_receivedData setLength:0]; // очистка ранее полученных данных
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// добавляем новые данные к receiveData
[_receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// выполнение операций с полученными данными
NSLog(@"Обработка полученных данных");
_resultResponse = [[NSString alloc] initWithData:_receivedData encoding:NSUTF8StringEncoding];
NSLog(@"dataStr = %@", _resultResponse);
_homesJSON = [HomesModel arrayOfModelsFromString:_resultResponse error:nil];
if (_homesJSON)
NSLog(@"Data homes saved.");
_roomsJSON = [RoomsModel arrayOfModelsFromString:_resultResponse error:nil];
if (_roomsJSON)
NSLog(@"Data rooms saved.");
}
Потом попробовал через dispatch_async.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^
{
[self getRequestHomes];
_homesJSON = [HomesModel arrayOfModelsFromString:_resultResponse error:nil];
if (_homesJSON)
NSLog(@"Data homes saved.");
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
{
[self getRequestRooms];
_roomsJSON = [RoomsModel arrayOfModelsFromString:_resultResponse error:nil];
if (_roomsJSON)
NSLog(@"Data rooms saved.");
});