제목별로 NSArray 또는 NSDictionary 개체가 있는지 어떻게 확인할 수 있습니까?개체가 NSArray 또는 NSDictionary인지 확인
41
A
답변
84
if([obj isKindOfClass:[NSArray class]]){
//Is array
}else if([obj isKindOfClass:[NSDictionary class]]){
//is dictionary
}else{
//is something else
}
12
는 BOOL 값을 반환해야
[myObject isKindOfClass:[NSDictionary class]]
이 두
[myObject isKindOfClass:[NSArray class]]
및
을보십시오. 이것은 NSObject의 방법의 기본적인 사용하는 것입니다 : In Objective-C, how do I test the object type?
8
당신이 JSON 또는 XML 데이터를 파싱하고있는 경우를 생각해 좀 더 내용
-(BOOL)isKindOfClass:(Class)aClass
, 여기이 대답을 참조 응답. 사용중인 파싱 라이브러리에 따라 NSArrays 또는 NSDictionaries로 끝나지 않을 수도 있습니다. 대신 __NSCFArray 또는 __NSCFDictionary가있을 수 있습니다. 이런 경우에
if([unknownObject respondsToSelector:@selector(lastObject)]){
// You can treat unknownObject as an NSArray
}else if([unknownObject respondsToSelector:@selector(allKeys)]){
// You can treat unknown Object as an NSDictionary
}
0
: 당신이 배열이 있거나 사전은 배열이나 사전에 응답 것이라는 선택기는 응답 여부를 확인하는 것입니다 여부를이 경우
는 가장 좋은 방법은 확인 누구든지이 파티에 늦게 오면 스위프트에 상응하는 사람을 찾고 있습니다. 여기 있습니다. 뿐만 아니라이 유형을 확인 않기 때문에 그것은 훨씬 더 우아한 목표 - C 버전, 이럴보다는, 그러나 그것은 동시에 원하는 형식으로에게 그들을 캐스트 : 이if let arrayVersion = obj as? NSArray {
// arrayVersion is guaranteed to be a non-`nil` NSArray
} else if let dictionaryVersion = obj as? NSDictionary {
// dictionaryVersion is guaranteed to be a non-`nil` NSDictionary
} else {
// it's neither
}
관련 문제
- 1. 개체가 대리자인지 확인
- 2. NSArray - 배열에 객체가 있는지 확인 하시겠습니까?
- 3. 개체가 정수인지 확인
- 4. 있는 NSArray 또는 NSMutableArray를
- 5. 개체가 설정되어 있는지 VBA 확인
- 6. 개체가 표시되고 클릭 가능한지 확인
- 7. NSKeyedArchiver 또는 [NSArray writeToFile : atomically :]?
- 8. NSArray
- 9. NSArray 정렬 및 NSArray 반환?
- 10. 개체가 쿼리 세트 결과의 외래 키인지 확인
- 11. 개체에 하나 이상의 연결된 개체가 있는지 확인
- 12. vbScript를 사용하여 SCCM에 개체가 있는지 확인
- 13. python의 개체가 특정 구조를 준수하는지 확인
- 14. 개체가 VB6에서 특정 인터페이스를 구현하는지 확인
- 15. NSArray 구성 요소를 정수 또는 십진수로 변환
- 16. NSArray (또는 NSObject)로 NSData를 변환하는 방법
- 17. NSArray 또는 NSMutableArray를 어떻게 실시간 필터링합니까?
- 18. Google 결과 NSArray 또는 이와 유사한 형태로
- 19. NSArray (또는 NSMutableArray)의 최대 요소 찾기
- 20. COM 개체가 동적 또는 정적입니까?
- 21. NSArray 대 NSDictionary 조회
- 22. 있는 NSArray
- 23. 있는 NSArray initWithObjects : 테스트로
- 24. NSArray 릴리스 충돌
- 25. NSdictionaries의 NSarray
- 26. IOS있는 NSArray
- 27. 값이있는 NSArray
- 28. 표시있는 NSArray
- 29. randomize NSArray
- 30. NSArray SIGABRT
-1 많은 객체가 응답 할 수 있습니다 동일한 선택자, 특히'lastObject' 또는'allKeys'와 같은 일반적인 것. 'isKindOfClass :'를 사용하는 것은 명확하게'NSArray'와'NSDictionary'와 같은 클래스 클러스터를 다루는 방법입니다. – Calrion
그 대답은 완전히 난센스입니다. [myObject isKindOfClass : [NSArray class]]는 "myObject가 NSArray 인 것처럼 동작합니까?"라는 질문에 올바르게 대답합니다. NSArray 나 NSDictionary 만 응답 할 셀렉터가 없습니다. 2 분 안에 "allKeys"및 "lastObject"인스턴스 메서드를 사용하여 클래스를 만들 수 있습니다. 또는 NSArray에 범주 메서드로 "allKeys"를 추가하십시오. – gnasher729