Какое снижение производительности при использовании isKindOfClass в Objective C? - PullRequest
6 голосов
/ 29 марта 2010

Я подумываю о введении:

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

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

if (myInstance.class == [SomeClass class]) { do something else...}

1 Ответ

4 голосов
/ 29 марта 2010

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

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

http://www.mulle -kybernetik.com / Код / Оптимизация / Opti-3-имп-deluxe.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...