У меня возникла проблема в понимании этой части "Тестирование равнозначности класса", которая определена в руководстве Apple.
В динамически создаваемом подклассе метод класса обычно переопределяется таким образом, что подкласс маскируется как класс, который он заменяет. При тестировании для равенства классов вы должны сравнивать значения, возвращаемые методом класса, а не те, которые возвращаются функциями нижнего уровня. В терминах API для динамических подклассов используются следующие неравенства:
[object class] != object_getClass(object) != *((Class*)object)
Поэтому вы должны проверить два класса для равенства следующим образом:
if ([objectA class] == [objectB class]) { //...