2013-03-01 39 views
0

我想用我的服務器作爲JSON響應的字典。當我打印字典的描述,一切都是爲了NSDictionary objectForKey返回錯誤的值

Printing description of dict: 
{ 
    category = 1; 
    code = 1; 
    name = "xxxx"; 
    pictureUrl = "xxxx"; 
    sessionId = xxx; 
    status = 0; 
} 

我需要的「代碼」值,當我使用objectForKey:@「代碼」得到它,我得到一個錯誤的值:

int code = [NSDictionary objectForKey:@"code"]; 

在此之後,我打印出代碼的價值和像3483765348,這是非常非常錯誤的東西。

這是怎麼發生的?

+0

int code = [[NSDictionary objectForKey:@「code」] int value]; 嘗試像這樣 – Dany 2013-03-01 10:30:59

+0

@VishnuPrasath:你的回答是正確的,你是第一個,永遠不要隱藏自己或害羞,只要繼續發佈作爲答案。如果你的答案是downvoted,你會學到一些東西,如果upvoted,那麼你的信心會增長,沒什麼可以放鬆在這裏:) – 2013-03-01 10:39:35

+0

@AnoopVaidya我實際上發佈第一...但由於短文答案它會自動添加評論&謝謝你的措辭.. – Dany 2013-03-01 10:41:43

回答

7

返回的對象是一個NSNumber,而不是一個int(它不是一個對象)。 如果你想要的int值試試這個

int code = [[myDictionary objectForKey:@"code"] intValue]; 
0

-objectForKey:不會返回一個int,而是一個對象(在您的情況下爲NSNumber)。

NSNumber *code = [myDict objectForKey:@"code"]; 
NSInteger codeInteger = [code integerValue]; 
0
int code = [[yourResultingDictionary objectForKey:@"code"] intValue]; 

我認爲這將是對你有所幫助。

3

試試下面的代碼將使用爲您解決問題。由於每個代碼只返回你必須將其轉換爲int value.Use這塊價值的代碼

int code = [[NSDictionary objectForKey:@"code"]intValue]; 

希望這有助於!

+0

我個人的喜好是使用NSInteger整型。你做了一個錯字「int Value」而不是「intValue」。 – 2013-03-01 10:57:26

0

對象鍵僅返回數組值,所以您將使用鍵路徑的值。

user_idstr = [tweet valueForKeyPath:@"properties.user_id"];