Я работаю над небольшим проектом MacRuby, использующим 0.5b1, который реализует методы делегирования, необходимые для Growl (приложение использует Growl для уведомлений).
Я хотел бы иметь возможность отвечать на обратные вызовы Growl при нажатии на уведомление, однако, когда вы регистрируете делегата Growl с помощью ::GrowlApplicationBridge.setGrowlDelegate self
, он запрашивает у делегата NSDictionary*
с регистрационной информацией Growl.
Я пытался вернуть стандартный экземпляр NSDictionary, пытаясь привести объект к указателю и т. Д., Но каждый раз, когда мне кажется, что возникает ошибка сегментации (я думаю, это потому, что я возвращаю объект, а не указатель на объект).
Мне интересно, возможно ли получить указатель на сам объект или, используя p = Pointer.new("NSDictionary")
, можно ли как-то назначить данные (использование p.assign(dict)
приводит к ошибке типа, так как ожидает целое число ).
Полагаю, что другой вариант - написать класс ObjC, выступающий в роли делегата, и просто подключиться к нему из Ruby, но это несколько противоречит цели ....