Re: [Pyobjc-dev] Re: [Pythonmac-SIG] pyobjc / cocoa
Brought to you by:
ronaldoussoren
From: Bob S. <bob...@ma...> - 2002-10-16 20:21:06
|
On Wednesday, October 16, 2002, at 01:54 PM, Seth Delackner wrote: > On Wednesday, October 16, 2002, at 06:18 , Bob Savage wrote: > >> [obj message: arg1 withFoo: arg2]; >> [obj withFoo:arg2 message:arg1]; >> >> Those are two different methods. This means that the Seth's system >> would not work > I may be wrong, but I disagree with your assessment. There is only a > single mapping possible from my example (although now looking at it, > my example had a typo). What I meant is: > > rt.call(obj, "message", arg1, "arg2name", arg2); > # giving us the message name = "message:arg1name:arg2name" > > The method 'rt.call' would take arguments [0] object to receive the > message, [1] first part of the message name, [2] . Each subsequent > pair of arguments is interpreted as first the next chunk of the > message name and then the next part of the message arguments. > > Where is the ambiguity? Hopefully I am not misunderstanding you. If what you are saying is you could take : rt.call(obj, "message", arg1, "arg2name", arg2); and have rt.call() concatenate the strings "message" and "arg2name" (with a colon between) then converting that to the selector (like method name for the runtime) "@sel(message: arg2name)" and then do a call selector with arg1 and arg2, sure you can do that. Here is where I see the ambiguity arising: @sel is drawSelfAtPoint:withSize:color: rt.call(obj, "drawSelfAtPoint", p, "color", c, "withSize", "s") rt.call() concatenates the method name as "drawSelfAtPoint: color: withSize:". Then the runtime sends a message to the object to perform the selector "@sel (drawSelfAtPoint: color: withSize:)", and the object says, it can't. Am I understanding you correctly? Because, the way I see it, this is likely to encourage runtime errors (unknown selector). Bob |