[MacRuby-devel] calling Objective-C method with block parameter

Matt Aimonetti mattaimonetti at gmail.com
Tue Nov 16 14:10:40 PST 2010


Did you install BridgeSupport preview 1?
http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html
It is required to use C blocks.

Thanks,

- Matt


On Mon, Nov 15, 2010 at 2:51 AM, Alan Skipp <al_skipp at fastmail.fm> wrote:

> Hello everyone,
> I'm attempting to call a method on an Objective-C object which takes a
> block as its parameter, but I'm not having much luck.  I can happily create
> the object in Macruby and send the message with a Proc. The NSLog call
> within the Objective-C method body succeeds, but the 'block()' doesn't. Am I
> doing something obviously wrong here? (I'm using a nightly build from
> sometime last week).
>
>
> This is the Objective-C method:
>
> - (void)callBlock:(void (^)())block;
> {
> NSLog(@"block: %@", block);
>  block();
> }
>
> Here is the ruby code:
>
> b = TestBlock.new
> b.callBlock( Proc.new { puts "hello" } )
>
>
> The output is as follows:
>
> *block: #<Proc:0x2005c9b80>*
> *
> Program received signal:  “EXC_BAD_ACCESS”.
> *
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20101116/635ca155/attachment.html>


More information about the MacRuby-devel mailing list