Re: [Pyobjc-dev] Confusing crash that's fixed by adding NSBeep()
Brought to you by:
ronaldoussoren
|
From: Jonathan <jon...@jo...> - 2010-05-20 20:22:25
|
It's probably python getting what you're doing confused with methods
common to the target-action system. I've found it to be a good idea
to avoid method names that come up in AppKiDo when using bridged
languages with cocoa.
Cheers
jonathan Saggau
Happily elbows-deep in python again, if only for a couple of weeks. :)
On Thu, May 20, 2010 at 3:52 PM, Scott Harris <sco...@gm...> wrote:
> Thanks. Changing the method name to something other than action fixes the
> issue. Is action a bad choice for a method in general?
> -Scott
> On May 15, 2010, at 11:24 AM, Ronald Oussoren wrote:
>
> On 14 May, 2010, at 8:40, Scott Harris wrote:
>
> I've got this obj-c object in a simple demo program:
>
> @implementation junker
> -(id) init
> {
> [super init];
> NSLog(@"initing");
> [self action];
> return self;
> }
> -(void) action
> {
> NSLog(@"junk");
> //NSBeep();
> }
> @end
> I call it from Python in my App delegate like this:
> from Foundation import *
> from AppKit import *
> class PyObjCTestAppDelegate(NSObject):
> def applicationDidFinishLaunching_(self, sender):
> NSLog("Application did finish launching.")
> self.a=junker.alloc().init()
> def awakeFromNib(self):
> NSLog("Awoke from NIB")
> @objc.IBAction
> def buttonPress_(self, sender):
> NSLog("Button pressed!")
> self.a.action()
> The funny thing is that the program crashes when I press the button that
> calls buttonPress iff NSBeep is commented out, but runs fine if the NSBeep
> is uncommented. Strange.
> Here's the console output:
> 2010-05-14 00:39:23.924 PyObjCTest[99096:a0f] Awoke from NIB
> 2010-05-14 00:39:24.006 PyObjCTest[99096:a0f] Drawing
> 2010-05-14 00:39:24.069 PyObjCTest[99096:a0f] Application did finish
> launching.
> 2010-05-14 00:39:24.070 PyObjCTest[99096:a0f] initing
> 2010-05-14 00:39:24.070 PyObjCTest[99096:a0f] junk
> 2010-05-14 00:39:29.781 PyObjCTest[99096:a0f] Button Pressed
> 2010-05-14 00:39:29.782 PyObjCTest[99096:a0f] junk
> Program received signal: “EXC_BAD_ACCESS”.
> sharedlibrary apply-load-rules all
> Any ideas?
>
> The code looks correct, but indeed crashes. I'm looking into this, at first
> glance it seems that PyObjC is confused about the return type for [junker
> -action], and that's probably caused by the metadata files.
> One quick way to work around this: rename 'action' to something else.
> Ronald
>
>
> ------------------------------------------------------------------------------
>
>
> _______________________________________________
> Pyobjc-dev mailing list
> Pyo...@li...
> https://lists.sourceforge.net/lists/listinfo/pyobjc-dev
>
>
--
Jonathan Saggau
jonathansaggau.com
This amusement engaged me so much that [friends] were obliged to force
me from it; and thus it is with every inclination I give into, it
continues to augment, till at length it becomes so powerful, that I
lose sight of everything except the favorite amusement. - Rousseau
|