2012-05-02 2 views

답변

3

반환 된 개체가 -isKindOfClass: 메서드를 사용하여 특정 클래스인지 확인할 수 있습니다. 예를 들어 배열인지 확인하려면

id jsonObj = [NSJSONSerialization JSONObjectWithData:...] 
if ([jsonObj isKindOfClass:[NSArray class]] { 
    // Do array stuff... 
} 

다른 기초 유형에 대해서도 마찬가지입니다.

1

NSJSONSerialization은 iOS 5.0 이상 및 Mac OS X 10.7 이상에서만 지원되므로주의하시기 바랍니다.

  • JSONKit (도입에 따라보다 빠른 NSJSONSerialization)
  • SBJson

가 모두 쉽게 :

난 당신이 또한 타사 라이브러리와 시도를 할 수 있다고 생각 사용하고 유연합니다.

+1

나는 꽤 오랫동안 ** SBJson Framework **를 사용 해왔고 나 ... ...--) –

+3

좋은 생각인데, 정말로 질문에 대답하지 않습니다 ... 이것은 의견으로 더 적합 할 수 있습니다. – rid

1

모든 개체가 해당 클래스에 응답 할 수 있습니다. 더 유용한 것은 클래스의 멤버이거나 서브 클래스 중 어떤 것이 있는지 질문 할 수 있습니다 :

id jsonParse; 

if ([jsonParse isKindOfClass:[NSArray self]]) { 
    for (id element in (NSArray *)jsonParse) { 

     // and so on 
    } 
} 
+0

'[NSArray self]'는 이상하게 보입니다 (작동하지만). '[NSArray 클래스]는 훨씬 더 전형적인 관용적 인 Objective-C입니다. –

+1

좀 더 전형적이지만 조금 잘못되었습니다. 클래스에 대해 클래스에 요청하는 것은 클래스가 메타 클래스 (Objective C에서 자비롭게 결석 한 개념)인지 묻는 것입니다. 그러나 수업 자체를 요구하는 것은 분명하고 정확하며 감히 말해줍니다. – danh