반응형
Objective-C Runtime: 클래스가 프로토콜을 준수하는지 확인하는 가장 좋은 방법입니다.
클래스가 있으며(인스턴스는 없음) 특정 프로토콜에 부합하는지 확인해야 합니다.그러나 클래스는 여러 번 하위 분류할 수 있으며 class_conformsToProtocol()은 슈퍼 클래스에 선언된 프로토콜을 무시합니다.
class_getSuperclass()를 사용하여 슈퍼클래스가 0이 될 때까지 계층 내 모든 클래스를 반복적으로 체크할 수 있습니다.하지만 저는 그것이 깊이 중첩된 계급 계층에 비효율적일 수 있는지, 그리고 그렇게 할 수 있는 더 좋은 방법이 없을지 궁금해요.
즉, NSObject 메서드는 Objective-C 런타임 메서드를 사용하여 어떻게 구현되어 슈퍼클래스에서 프로토콜을 찾을 수 있습니까?
[myObject conformsToProtocol:@protocol(MyProtocol)];
만약 제가 학급 계층이 반복적으로 올라가는 올바른 방향으로 가고 있다면, 제게 알려주세요.
[MyClass conformsToProtocol:@protocol(MyProtocol)];
작동해야 합니다.
또는 일반 포인터인 경우 다음과 같이 입력합니다.
Class<MyProtocol> someClassPointer = nil;
다음을 사용할 수 있습니다.
[someClassPointer.class conformsToProtocol:@protocol(MyProtocol)];
언급URL : https://stackoverflow.com/questions/3436257/objective-c-runtime-best-way-to-check-if-class-conforms-to-protocol
반응형
'source' 카테고리의 다른 글
초기 git commit을 되돌리는 방법 (0) | 2023.04.17 |
---|---|
WPF 텍스트블록의 텍스트 수직 정렬 (0) | 2023.04.17 |
write.table() 출력의 10진수를 제어하려면 어떻게 해야 합니까? (0) | 2023.04.17 |
변수가 함수인지 아닌지는 어떻게 검출합니까? (0) | 2023.04.17 |
Excel VBA에서 행 삭제 (0) | 2023.04.17 |