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

dur*_*cko 6 performance objective-c

我正在考虑介绍:

if ([myInstance isKindOfClass:[SomeClass class]]) { do something...}
Run Code Online (Sandbox Code Playgroud)

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

if (myInstance.class == [SomeClass class]) { do something else...}
Run Code Online (Sandbox Code Playgroud)

cod*_*ior 5

查看两个对象是否属于同一类的最快方法是比较它们的isa指针。然而,这意味着您将错过一个对象的类是另一个对象的类的子类的情况,而这正是其isKindOfClass:目的。

无论如何,您所说的优化已经在这里完成:

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