2014-01-18 27 views
-1

我正在寫一個從Web請求獲取數據的iOS應用程序。該請求返回以下結果: {"hash":"0369a5d5e65335309b2b1502dc96b5aba691b9451c83b9","error":0}NSJSON用整數串行化

我從NSData* responseData對象中的數據如下所示:

NSDictionary* JSONdata = [NSJSONSerialization JSONObjectWithData:_responseData options:0 error:&error]; 

NSInteger responseError = (NSInteger)[JSONdata objectForKey:@"error"]; 

然而,responseError是回來未初始化(填充有垃圾值)。我試圖改變NSIntegerNSString*但產生以下錯誤

'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x9d02220' 

任何想法?

+0

請閱讀靈長類與類 –

回答

2

你需要使用一個NSNumber。當iOS在NSObjects中解析數據時,原始值將不起作用:NSArray,NSDictionary,NSNumber,NSString和NSNull。

試試這個:NSNumber *responseError = [JSONdata objectForKey:@"error"];

然後轉換爲一個NSInteger,你可以這樣做:
NSInteger responseInt = [responseError integerValue];這將返回一個整數值。

同樣爲了將來的參考,NSDictionary不能包含任何原始值。