Re: BUG?: Multiple Inheritance and DO
Re: BUG?: Multiple Inheritance and DO
- Subject: Re: BUG?: Multiple Inheritance and DO
- From: Aurélien Hugelé <email@hidden>
- Date: Mon, 25 Apr 2005 18:45:33 +0200
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@hidden)
Help/Unsubscribe/Update your Subscription:
40gumitech.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden