Also, it is to note that if the block lives inside a framework you've made (or 
downladed – one that is not part of the system), you'll have to generate the 
BridgeSupport files yourselves.
This is important because the runtime needs to know that you're trying to use 
blocks, and you instruct it to use them by creating and using the said 
BridgeSupport files :-)

-- 
Thibault Martin-Lagardette



On Nov 16, 2010, at 23:10, Matt Aimonetti wrote:

> 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_sk...@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@lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel@lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to