Re: [Pyobjc-dev] Objc-agnostic model classes
Brought to you by:
ronaldoussoren
From: Jordan K. <jo...@kr...> - 2004-08-13 06:40:25
|
On 12-Aug-04, at 10:57 PM, Ronald Oussoren wrote: > Isn't NSNumber automaticly converted at the moment? You do have to > call x.doubleValue() (or intValue, or strValue, or ...) on text > fields, but automaticly converting those really isn't possible. When I do the following from a PyObjC class (Person) to a pure Python class (self.pyPerson): def setExpectedRaise_(self, x): self.pyPerson.expectedRaise = x setExpectedRaise_ = objc.accessor(setExpectedRaise_) And then, from the pure-Python class, ask for self.expectedRaise.__class__, I get this: <objective-c class NSDecimalNumber at 0xa0a061f8> This isn't something I want to send across the wire to a pure Python remote server that has no concept of PyObjC or Cocoa, is it?. That's why I'm using self.pyPerson.expectedRaise = x.doubleValue() instead. I've removed the casts from Python to ObjC, but when going ObjC -> Python, I'm trying to make sure that the pure Python code only uses stock Python types, otherwise I haven't much hope of using the same class definition on both ends of the wire, so that I can use remote object protocols like Twisted's Perspective Broker. If I can pickle the objects, I'm happy. pickle doesn't care much for objective-c classes. > I don't use Twisted at all. I'd like to, but the sheer size of it > scares me away :-) I'm actually kinda surprised that I'm the only one wanting to do this, what with the Twisted examples in the PyObjC distro. :) I'm hoping to some day end up with a pure Python model object that can be used with Bindings, that forwards KVC/KVO methods to a remote PB object (using local caching where appropriate to avoid the performance nightmare, of course). For now, I'm happy to be able to have a shim object in the middle, but it's the PB part that's hard. Using method-based RPC like XML-RPC isn't appealing, and I lose the bi-directionality of it, without constant polling. That, and it blocks the rest of the application unless I spin off threads. J. |