Что означает isKindOfClass в документации Apple
Будьте осторожны при использовании этого метода на объектах, представленных кластером классов. Из-за природы кластеров классов возвращаемый объект может не всегда соответствовать ожидаемому типу. Если вы вызываете метод, который возвращает кластер классов, точный тип, возвращаемый методом, является лучшим индикатором того, что вы можете сделать с этим объектом. Например, если метод возвращает указатель на объект NSArray, вы не должны использовать этот метод, чтобы увидеть, является ли массив изменяемым, как показано в следующем коде:
// DO NOT DO THIS!
if ([myArray isKindOfClass:[NSMutableArray class]])
{
// Modify the object
}
Если вы используете такие конструкции в своем коде, вы можете подумать, что можно модифицировать объект, который в действительности не должен изменяться. Это может создать проблемы для другого кода, который ожидает, что объект останется неизменным.