Какова потеря производительности использования isKindOfClass в Objective C?

Я рассматриваю представление:

if ([myInstance isKindOfClass:[SomeClass class]]) { do something...}

в часть кода, который называют довольно часто. Я представлю значительную потерю производительности? В Objective C, там более быстрый способ оценить, является ли приведенный пример объекта определенный тип класса? Например, действительно ли следующее более быстро? (Я понимаю, что тест несколько отличается),

if (myInstance.class == [SomeClass class]) { do something else...}
6
задан durcicko 28 March 2010 в 22:03
поделиться

1 ответ

Самый быстрый способ узнать, относятся ли два объекта к одному и тому же классу, - это сравнить их указатели isa . Однако это означает, что вы пропустите, когда класс одного объекта является подклассом класса другого объекта, для чего и предназначен isKindOfClass: .

Тем не менее, оптимизация, о которой вы говорите, уже была сделана здесь:

http://www.mulle-kybernetik.com/artikel/Optimization/opti-3-imp-deluxe.html

4
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: