Skip navigation.
 
mlRe: BUG?: Multiple Inheritance and DO
FROM : Aurélien Hugelé
DATE : Mon Apr 25 18:45:33 2005

On 24 avr. 05, at 23:58, Philip Mötteli wrote:

> Hi
>
>
> Has Apple changed something with their implementation of 
> Distributed Objects? Do they always call -
> methodDescriptionForSelector: before calling the real method?
> I have an object, that implements multiple inheritance. I have done 
> this, by implementing the following methods:
>
> - (void)forwardInvocation:(NSInvocation *)anInvocation;
> - (BOOL)respondsToSelector:(SEL)aSelector;
> - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
>
> So far everything worked well. But since recently, I see the 
> NSConnection make the following call, before calling the real method:
>
> -[anObject methodSignatureForSelector:@selector
> (methodDescriptionForSelector:)]
>
>
> Of course this returns something, because -
> methodDescriptionForSelector: is implemented by Apple in NSObject. 
> But then in this method they seem to try to extract some 
> information about the real method, that was called. Unfortunately, 
> the real method is not part of the original object, but part of the 
> multiple inheritance, so another object. So I get a 'method not 
> implemented' error.
> So I thought, we apparently have to implement another method in 
> order to achieve multiple inheritance:
>
> - (struct objc_method_description *)methodDescriptionForSelector:
> (SEL)aSelector
> {
>    struct objc_method_description    *aDescription = [super 
> methodDescriptionForSelector:aSelector];
>    if(aDescription)
>        return aDescription;
>
>    return [[self otherObject] 
> methodDescriptionForSelector:aSelector];
> }
>
>
> This then gives the following DO error:
>

> _preInitWithCoder:signature:valid:wireSignature:target:selector:argCou
> nt: incompatible method params: got NSMethodSignature: types=^
> {objc_method_description=:*}@:: nargs=3 sizeOfParams=160 
> returnValueLength=4;  want NSMethodSignature: types=^
> {objc_method_description=}@:: nargs=3 sizeOfParams=160 
> returnValueLength=4;
>


are you using tiger ?
almost all of my DO code gives me the same error on 10.4, it was 
working like a charm under 10.2 and 10.3
i think it is a bug in Cocoa DO since 10.4, but i'm not sure... i 
must recognized that i'm lost here...

have you tried a trivial OD test ?

thanks

>
> How do I implement multiple inheritance with DO?
>
>
> Thanks
> Phil
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/hugele.aurelien%
> 40gumitech.com
>
> This email sent to hugele.<email_removed>
>
>

Related mailsAuthorDate
mlBUG?: Multiple Inheritance and DO Philip Mötteli Apr 24, 23:58
mlRe: BUG?: Multiple Inheritance and DO Aurélien Hugelé Apr 25, 18:45
mlRe: BUG?: Multiple Inheritance and DO Philip Mötteli Apr 25, 19:37