2014-02-24 77 views
1

在我以前的程序,我有這個代碼從一個NSDictionary變量提取JSON成一個字符串:獲取的NSString從NSDictionary的JSON值和地方工作不

NSString *task_id = [jsonString objectForKey:@"key"]; 

它的工作非常好,但由於某種原因,它贏得不再適用於我的新應用程序?相反,我得到這個錯誤:

-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x14d7bda0 

有沒有人知道爲什麼這可能無法正常工作?

彼得

+4

好像你jsonString,着實是一個字符串,而不是一個字典。 – Ares

+0

1)在解碼之前NSLog記錄JSON。 (做[[NSString alloc] initWithData:dataObjwect encoding:NSUTF8Encoding]'使NSData可打印。)2)NSLog解碼的結果。觀察一個字典是用'{}'和一個帶有'()'的數組包圍的。 –

回答

1

確保jsonString是NSDictionary

if([jsonString isKindOfClass:[NSDictionary class]]) { 
    NSString *task_id = [jsonString objectForKey:@"key"]; 
} else { 
    // is not a dictionary 
    NSLog(@"%@", jsonString); 
} 
+0

這不是一本字典,我會回到繪圖板,找出原因。謝謝你的幫助:) –

+1

是的,繪圖板是最好的選擇:) –

+1

UPDATE:if([jsonString isKindOfClass:[NSDictionary Class]]){did not work,but the code from'Class'to'class'工作很棒:) –