2014-01-18 4 views
-1

웹 요청에서 데이터를 가져 오는 IOS 애플리케이션을 작성하고 있습니다. 다음과 같이 {"hash":"0369a5d5e65335309b2b1502dc96b5aba691b9451c83b9","error":0}NSJSON 정수로 일련 화

나는 NSData* responseData 개체에서 데이터를 얻을 :

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

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

그러나, responseError이 (쓰레기 값으로 가득) 다시 초기화되지 않은오고있다 요청은 다음을 반환합니다. 나는 NSString*NSInteger을 변경 시도하지만 다음과 같은 오류

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

어떤 아이디어를 얻을?

+0

영장류 대 클래스를 읽어주세요. –

답변

2

NSNumber를 사용해야합니다. iOS가 NSObject의 데이터 (NSArray, NSDictionary, NSNumber, NSString 및 NSNull)를 구문 분석 할 때 기본 값은 작동하지 않습니다. 이 작업을 수행 할 수

NSNumber *responseError = [JSONdata objectForKey:@"error"];는 그런 다음 NSInteger로 변환 :

이 시도
NSInteger responseInt = [responseError integerValue];이 정수 값을 반환합니다.

나중에 참조 할 수 있도록 NSDictionary에는 기본 값이 포함될 수 없습니다.