У мене є клас (але жоден екземпляр) і мені потрібно знати, чи відповідає він певному протоколу. Однак Class можна підкласифікувати декілька разів і class_conformsToProtocol () ігнорує протоколи, оголошені на надкласах.
Я міг просто використовувати class_getSuperclass () і рекурсивно перевіряти всі класи в ієрархії вгору, поки суперклас не буде нульовим. Однак мені цікаво, чи це може бути неефективно для глибоко вкладених ієрархій класів, і, можливо, є приємніший спосіб зробити це?
Іншими словами, як NSObject метод відповідностіToProtocol найкраще реалізується за допомогою методів виконання Objective-C, щоб він знаходив протоколи на надкласах?
[myObject conformsToProtocol:@protocol(MyProtocol)];
Якщо я на правильному шляху з рекурсивним підняттям ієрархії класів, просто дайте мені знати.