在Objective C中使用isKindOfClass会有什么性能损失?

时间:2010-03-28 22:03:33

标签: objective-c performance

我正在考虑介绍:

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

进入一段经常被调用的代码。我会引入重大的性能损失吗?在Objective C中,是否有更快的方法来评估给定的对象实例是否属于某种类型?例如,以下更快? (我意识到测试有些不同)

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

1 个答案:

答案 0 :(得分:4)

查看两个对象是否属于同一类的最快方法是比较它们的isa指针。但是,这意味着当一个对象的类是另一个对象类的子类时,你会错过,这正是isKindOfClass:的意思。

无论如何,你所谈论的优化已在这里完成:

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