2013-11-15 7 views
4

JSON Мой код в настоящее время выглядит следующим образомAFNetworking 2,0 - изменяемые

NSURL *URL = [NSURL URLWithString:URLForSend]; 
NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] 
            initWithRequest:request]; 
operation.responseSerializer = [AFJSONResponseSerializer serializer]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) 
{ 
    NSLog(@"%@", responseObject); 
    [BoxJsonDataHelper gotNewJson:responseObject]; 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) 
{ 
    NSLog(@"Request Failure Because %@",[error userInfo]); 
}]; 

[operation start]; 

Но при попытке редактирования словарей в объект получил, я получаю ошибку об использовании методов, принадлежит изменяемый словарь, а не словарь. Как мне использовать AFNetworking вместо вложенных изменяемых объектов?

+0

Возможный дубликат [Как вы получаете изменяемые словари из AFNetworking и AFJSONRequestOperation?] (http://stackoverflow.com/questions/9409760/how-do-you-get-mutable-dictionaries-from-afnetworking-and-afjsonrequestoperation) – Leena

ответ

23

Вы говорите AFJSONResponseSerializer, что он должен вернуть изменяемые контейнеры:

operation.responseSerializer = 
    [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingMutableContainers] 

Это все очень хорошо документированы: http://cocoadocs.org/docsets/AFNetworking/2.0.0/

+0

Спасибо, я понял, что неправильно из документации, что она должна быть стандартной , –

+1

BTW Этот параметр оптимизирует обработку бит памяти, поскольку он не копирует измененный контейнер в неизменяемый. И вернуть также изменяемые листья: manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves]; – Borzh

Смежные вопросы