2015-04-24 3 views
-2

Я пытаюсь извлечь данные (только строку) из запроса и установить его в NSString. Я пробовал это во многом, но он не работает. Если кто-нибудь может указать на мою ошибку, это будет очень полезно для меня.afnetworking получить данные json из ответа

данные JSON

{ 
    "status": 1, 
    "key": "1e39248f4a5e05153dc376a" 
} 

Мой код

NSString *key; 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

    NSDictionary *params = @ {@"app_token" :APP_TOKEN}; 

    [manager POST:GET_USER_KEY_URL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSDictionary* response = (NSDictionary*) responseObject; 
     key=[response valueForKey:@"key"]; 
     [[NSUserDefaults standardUserDefaults]setValue:(key) forKey:USER_KEY]; 
     NSLog(@"NEW KEY Request: %@", key); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"NEW KEY Request error: %@", error); 
    }]; 

Просто хочу, чтобы назначить ответ данных "ключ" и сохранить его на клавишу * NSString;

Заранее спасибо.

+0

Любая ошибка? Что говорит NSLog? – Miknash

+0

для этой строки ключ = [значение ответаForKey: @ "key"]; Переменная не назначается (отсутствует спецификатор типа __block) – gamal

+0

Вы уверены, что получили этот JSON? Каково содержание ответа или объекта ответа? – Miknash

ответ

3

Вы указали ключ переменной вне блока. Вам необходимо добавить __block infront of NSString *key;

Чтобы назначить переменную за пределами блока, вам необходимо запомнить спецификатор __block.

Связанные вопрос: Assign a variable inside a Block to a variable outside a Block

+0

это сработало спасибо .... :) – gamal

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