[MacRuby-devel] handling void pointers in callbacks

Laurent Sansonetti lsansonetti at apple.com
Sat Jan 9 01:51:54 PST 2010


Hi Michael,

I recommend not to use this argument in MacRuby at this point. it is  
safer to pass a value by assigning it as an instance variable of the  
observer/delegate/whatever receiver object instead, using  
#instance_variable_set.

Laurent

On Jan 9, 2010, at 12:01 AM, Michael Johnston wrote:

> I'm working through the PragProg Core Data book, and have  
> encountered an issue passing contextInfo to  
> NSOpenPanel.beginSheetForDirectory
>
> This issue was discussed on the list previously by Dr. Nic: http://www.mail-archive.com/macruby-devel@lists.macosforge.org/msg00330.html
>
> The problem is that there doesn't seem to be a way to cast an object  
> pointer to a void pointer in Macruby, but when openPanel calls the  
> callback assigned in didEndSelector it does cast the pointer passed  
> in contextInfo to a void pointer, leading to a type error when the  
> callback is called:
>
> {{{
> 2010-01-08 23:44:49.580 GrokkingRecipesRuby[34059:10b] expected  
> instance of Pointer of type `v', got `@'
> }}}
>
> I tried assigning my object to a Pointer.new('^v') and Pointer.new 
> (:uchar) but this also caused type errors.
>
> is there any workaround for this?
>
> Cheerio,
>
> Michael Johnston
> lastobelus at mac.com
>
>
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list