开发者

What's the performance penalty of using isKindOfClass in Objective C?

开发者 https://www.devze.com 2022-12-24 05:14 出处:网络
I\'m considering introducing: if ([myInstance isKindOfClass:[SomeClass class]]) { do something...} into a piece of code that gets called pretty often.Will I introduce a significant performance pena

I'm considering introducing:

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

into a piece of code that gets called pretty often. Will I introduce a significant performance penalty? In Objective C, is there a quicker way of assessing whether a given object instance is of certain class type? For example, is the following quicker? (I realize the 开发者_StackOverflow中文版test is somewhat different)

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


The quickest way to see if two objects are of the same class is to compare their isa pointers. However, this means you'll miss when one object's class is a subclass of the other object's class, which is exactly what isKindOfClass: is meant for.

Regardless, the optimization you're talking about has already been done here:

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号