[Pythonmac-SIG] Using UKKQueue with PyObjC
Bob Ippolito
bob at redivi.com
Tue Mar 8 19:35:59 CET 2005
On Mar 8, 2005, at 10:54, Florian Munz wrote:
> Bob Ippolito <bob at redivi.com> wrote:
>
>> It's automatically generated from the Xcode project and is a
>> relatively
>> general solution, so it's not minimal. Works fine with --alias here,
>> you should try it with py2app svn trunk.
>
> Okay, since I'm am not using XCode I thought there must be a simpler
> way.
There is, but not much simpler. You still have to build an extension
that the Objective-C code is going to live in. If it was a pre-built
framework or plug-in it would be a different story, but compiling one
of those is harder than having distutils build an extension.
>> You probably can use any Python class, but the most well tested
>> solution is to use a NSObject subclass whenever you have code that is
>> going to be called from Objective-C, so I would recommend doing that.
>
> I tried subclassing NSObject but now I am not sure about the right way
> to create an object. Take this minimal example:
>
> class Converter (NSObject):
> def init(self):
> self = NSObject.init(self)
> NSWorkspace.sharedWorkspace().notificationCenter().
> addObserver_selector_name_object_(
> self, "documentChanged:",
> None,
> None)
> return self
>
> def documentChanged_(self, notification):
> print 'handleChange'
>
> If I instantiate this class from the Main-Class with
> Converter.alloc().init() my application dies quickly (Crash Reporter,
> nothing in the logs). If I however instantiate it from Interface
> Builder
> it works. Is this a bug or a feature? :)
> I don't want to instantate it from IB, because I have 4 of these
> classes
> and don't need all of them everytime.
You forgot to specify WHICH notification in Converter.. you're saying
"add my documentChanged: selector as an observer to... nothing".
Also, use self = super(Converter, self).init()
-bob
More information about the Pythonmac-SIG
mailing list