2014-01-16 54 views
0

我想解析NSDictionary中的值到本地數據模型。從NSDictionary解析NSString值返回無

這是詞典的內容。

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"]; 

這將在最後三場返回nil。但是,如果我使用這種方法來解析數據,它將實際工作。

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

您正在訪問「用戶配置」這裏

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"]; 

這是一個錯字或你有所謂的「用戶信息」您錯誤地使用對象?