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