2012-07-02 2 views
2

POST를 수행 한 후 json return을 얻기 위해 NSJsonSerialization을 사용하고 있습니다. 그러나 나는 나의 복귀를 가지고 만약 내가 (내가 부탁 키가 존재하지 않는 경우 충돌 이후)을 분석하기 전에iOS에서 JSON 반환 키가 있는지 확인합니다.

{ 
"status":"false" 
} 

내가 확인해야합니다 : 내 정확한 수익을 돌아 가야 하나 아니면 얻을 그것이

내가 얻을 충돌이 하나 (내 다른 수익을 다시 얻었 기 때문에) 그것이 충돌이 존재하지 않는 그러나 경우, 괜찮아요 전무 때 내가

[whatever objectForKey:@"status"] == nil 

에 체크하면 NSJSONSerialzation 보인다 NSArray를 NSdictionary로 반환합니까? :

2012-07-02 11:03:40.426 [9412:10703] -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0 
2012-07-02 11:03:40.429 [9412:10703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0' 

내가 어떤 수익을 얻었는지 알기 위해 내가 그에 따라 행동 할 수 있어야합니다.

+0

? NSDictionary 클래스의 메서드를 사용하기 전에 인스턴스가 NSDictitary이고 NSArray가 아닌지 확인해야합니다. – rooftop

+0

지금은 찾지 못했지만 NSJsonSerialization이 데이터에 따라 NSDictionary 또는 NSArray 중 하나를 제공하기로 결정한 것을 기억합니다. – KDM

답변

5

당신이 변수 whatever의 종류를 확인할 수 있습니다 당신이 돌아 왔을 배열되면, JSON 구조 변화를 무슨 짓을

if([whatever isKindOfClass:[NSDictionary class]]) 
    //then check for nil 
else 
    //Then its not a dictionary then in your case its empty 
+0

감사합니다. 배열인지 (반환했는지) 또는 사전 (오류)인지 확인합니다. NSJsonSerialization의 일부로 반환 된 콜백을 Apple이 알려주 었으면합니다. – KDM