[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.
- isKindOf: - GSObjCIsKindOf, Marko Mikulicic, 2001/08/24
- Re: isKindOf: - GSObjCIsKindOf, Pascal Bourguignon, 2001/08/24
- Re: isKindOf: - GSObjCIsKindOf, Marko Mikulicic, 2001/08/25
- Re: isKindOf: - GSObjCIsKindOf, Nicola Pero, 2001/08/28
- Re: isKindOf: - GSObjCIsKindOf, Marko Mikulicic, 2001/08/29
- Re: isKindOf: - GSObjCIsKindOf, Stefan Böhringer, 2001/08/30
- Re: isKindOf: - GSObjCIsKindOf, Marko Mikulicic, 2001/08/30
- Message not available
- Re: isKindOf: - GSObjCIsKindOf, Stefan Böhringer, 2001/08/31
- Re: isKindOf: - GSObjCIsKindOf, Nicola Pero, 2001/08/30
Re: isKindOf: - GSObjCIsKindOf, Nicola Pero, 2001/08/28