On 29 Apr 2011, at 18:45, Mathieu Suen wrote:

> For the forwardInvocation: I am just wondering how could I add method like 
> drawRect:. I guess that drawRect:  is implement in the NSView class so 
> forwardInvocation: will never be called.

Yes, sorry, I wasn't thinking.  You will need to explicitly register a 
trampoline for each method that your subclass calls.  This will need to collect 
the arguments from the ObjC method and then call the Smalltalk method.

> Or do you mean that each method added to MyView should be add in objective-c 
> with the same code than forwardInvocation: I have implement up to now. 

That wasn't what I meant, but it's what I would have meant if I'd done the 
thinking before the typing.

> Do you mean that +resolveInstanceMethod: is call each time before sending a 
> message to an object?

No, it's only called if the runtime can't find a method corresponding to the 
selector.  It's fine for proxies, not so fine for subclasses that need to 
override the real methods.

>> You will also have some fun handling message sends to super from Smalltalk.  
>> Probably the best thing to do is support some kind of composition that looks 
>> like subclassing from the Objective-C side, but not from the Smalltalk side.
> 
> Thanks a lot
> PS. I have seen your books on amazon there look very interesting. Which one 
> do you recommend? 

Depends on what you're interested in.  The Xen one only if you're interested in 
operating systems.  Cocoa Programming goes into a lot of detail about the Cocoa 
/ GNUstep APIs.  The phrasebook is a pocket reference containing things I think 
every ObjC programmer should know.

David

--
This email complies with ISO 3103
_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à