discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: isKindOf: - GSObjCIsKindOf


From: Nicola Pero
Subject: Re: isKindOf: - GSObjCIsKindOf
Date: Tue, 28 Aug 2001 15:33:49 +0100 (BST)

> > >>I have noticed that those methods in NSObject are defined so:
> > >>
> > >>
> > >>- (BOOL) isKindOf: (Class)aClassObject
> > >>{
> > >>   return [self isKindOfClass: aClassObject];
> > >>}
> > >>
> > >>+ (BOOL) isKindOfClass: (Class)aClass
> > >>{
> > >>   if (aClass == [NSObject class])
> > >>     return YES;
> > >>   return NO;
> > >>}
> > >>- (BOOL) isKindOfClass: (Class)aClass
> > >>{
> > >>   Class class = GSObjCClass(self);
> > >>
> > >>   return GSObjCIsKindOf(class, aClass);
> > >>}


> However, I wonder why -isKindOfClass: is not implemented as follows: 
> - (BOOL)isKindOfClass:(Class)aClass 
> { 
>    Class class = [self class]; 
>    return [class isKindOfClass:aClass]; 
> }

Class class = [self class];

is much slower than `Class class = GSObjCClass (self);' because the latter
is an inline function while you are performing a full method call.


[class isKindOfClass: aClass];

is not correct because for instances isKindOfClass: *does* test for class
inheritance (if the programmer doesn't want that, she can use
-isMemberOfClass:).  GSObjCIsKindOf (which the base library uses) instead
gets it right.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]