2014-01-16 3 views
0

Я пытаюсь проанализировать значения из NSDictionary в локальной модели данных.Разбор значения NSString из NSDictionary возвращает nil

::: Введите текст с картинки.

Printing description of userProfile: 
{ 
    "created_at" = "2014-01-16T09:08:03.012Z"; 
    "first_name" = FirstName; 
    id = 74; 
    "last_name" = LastName; 
    phone = 09876543232; 
    photo = "<null>"; 
    "updated_at" = "2014-01-16T12:40:18.143Z"; 
    "user_id" = 84; 
} 

Это то, что я использую для разбора строк:

self.profileId = [[userProfile objectForKey:@"id"] intValue]; 
self.firstName = (NSString*)[userInfo objectForKey:@"first_name"]; 
self.lastName = (NSString*)[userInfo objectForKey:@"last_name"]; 
self.phoneNumber = (NSString*)[userInfo objectForKey:@"phone"]; 

Это вернет ноль на последних трех областях. Однако, если я использую этот метод для анализа данных, он действительно будет работать.

NSArray*keys=[userProfile allKeys]; 
self.firstName = [userProfile objectForKey:[keys objectAtIndex:3]]; 

Любая идея, почему это происходит?

+0

это может быть связано с опечаткой? в первом вызове вы извлекаете данные из объекта «userProfile», но в других трех случаях вы получаете доступ к объекту «userInfo» – rist

+1

сменить userInfo на userProfile ... –

+0

Можете ли вы попробовать '[userInfo objectForKey: @" \ "first_name \" " ] '? – neilvillareal

ответ

0

Вы обращаетесь к «Userprofile» здесь

self.profileId = [[userProfile objectForKey:@"id"] intValue]; 

, но доступ к «USERINFO» здесь

self.firstName = (NSString*)[userInfo objectForKey:@"first_name"]; 
self.lastName = (NSString*)[userInfo objectForKey:@"last_name"]; 
self.phoneNumber = (NSString*)[userInfo objectForKey:@"phone"]; 

Является ли это опечатка или у вас есть объект под названием «USERINFO», что вы по ошибке с помощью ?

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