Xcode를 처음 사용합니다. 모든 클래스가 XCode 4.3.1의 특정 프로토콜을 준수하는지 어떻게 알 수 있습니까? 그리고 한 클래스의 모든 하위 클래스를 어떻게 알 수 있습니까?XCode 4의 특정 프로토콜을 준수하는 모든 클래스 목록을 얻으려면 어떻게해야합니까?
9
A
답변
14
Objective-C runtime functions을 사용하십시오.
objc_getClassList
는 슈퍼 체인class_conformsToProtocol
또는 클래스는 프로토콜
7
Protocol *protocol = @protocol(YourProtocol);
int numberOfClasses = objc_getClassList(NULL, 0);
Class *classList = malloc(numberOfClasses * sizeof(Class));
numberOfClasses = objc_getClassList(classList, numberOfClasses);
for (int idx = 0; idx < numberOfClasses; idx++)
{
Class class = classList[idx];
if (class_getClassMethod(class, @selector(conformsToProtocol:)) && [class conformsToProtocol:protocol])
{
NSLog(@"%@", NSStringFromClass(class));
}
}
free(classList);
준수 여부를 확인하기 위해
-conformsToProtocol:
방법을 걸어
Class
ES
class_getSuperclass
-superclass
방법의 목록을 얻을 수 있습니다
관련 문제
- 1. 프로토콜을 준수하는 속성을 재정의합니다.
- 2. 모든 카메라 목록을 얻으려면 어떻게해야합니까?
- 3. 프로토콜을 준수하는 객체 인스턴스 만들기
- 4. ABRecordRef의 모든 속성 목록을 얻으려면 어떻게해야합니까?
- 5. 모든 COM 자동화 서버 목록을 얻으려면 어떻게해야합니까?
- 6. 설치된 모든 앱 목록을 얻으려면 어떻게해야합니까?
- 7. 메트로에서 모든 국가의 목록을 얻으려면 어떻게해야합니까?
- 8. 바인딩의 모든 변수 목록을 얻으려면 어떻게해야합니까?
- 9. 특정 프로토콜을 준수하는 개체에 의존하는 범주를 만드는 방법은 무엇입니까?
- 10. 도시 목록을 얻으려면 어떻게해야합니까?
- 11. Xcode - 내가보고있는 현재 클래스 안에있는 모든 메서드를 보려면 어떻게해야합니까?
- 12. 특정 세트에서 모든 소수를 얻으려면 어떻게해야합니까?
- 13. 클래스 패스에서 패키지 및/또는 클래스 목록을 얻으려면 어떻게해야합니까?
- 14. Xcode 4의 클래스 계층 구조 검색
- 15. 하위 클래스는 부모가 준수하는 프로토콜을 구현해야합니까?
- 16. Xcode 4의 폴더 참조에서 특정 파일 제외
- 17. C#에서 실시간 개체 목록을 얻으려면 어떻게해야합니까?
- 18. (프로그래밍 방식으로) 모든 파이썬 유형 목록을 얻으려면 어떻게해야합니까?
- 19. XCode 4의 임시 배포판
- 20. Xcode 4의 클래스 모델은 어디에 있습니까?
- 21. Foursquare API에서 "관리되는"모든 장소 목록을 얻으려면 어떻게해야합니까?
- 22. Emacs에서 특정 키 (콤보)로 시작하는 명령 목록을 얻으려면 어떻게해야합니까?
- 23. 지원 파일에있는 PNG 이름 목록을 얻으려면 어떻게해야합니까?
- 24. 프로토콜에서 모든 메소드를 얻으려면 어떻게해야합니까?
- 25. mysql : 데이터베이스 목록을 얻으려면 어떻게해야합니까?
- 26. 모바일에서 연락처 목록을 얻으려면 어떻게해야합니까?
- 27. MATLAB의 특정 디렉토리에있는 모든 디렉토리 이름 및/또는 모든 파일의 목록을 얻으려면 어떻게해야합니까?
- 28. iPhone 플랫폼에서 응용 프로그램 목록을 얻으려면 어떻게해야합니까?
- 29. Flex 어플리케이션에 컴파일 된 클래스 목록을 얻으려면 어떻게해야합니까?
- 30. jquery를 사용하여 특정 클래스의 ID 목록을 얻으려면 어떻게해야합니까?
fwiw,'class_conformsToProtocol'는'-conformsToProtocol'보다 빠릅니다. 이 클래스의 수천과 대형 애플 리케이션에 꽤 병 목입니다 –