2010-05-21 2 views
0

Как я могу получить синглтон в основном приложении из плагина SIMBL? Когда я пытаюсь вызвать что-то вроде [ProcessControl sharedInstance], я получаю сообщение об ошибке, которое ProcessControl не определено (хотя оно объявлено в файле заголовка).Синглтоны в плагинах Cocoa

ответ

1

Используйте NSClassFromString, чтобы посмотреть класс во время выполнения, затем отправьте сообщение sharedInstance как обычно.

Будьте готовы к NSClassFromString, чтобы вернуть Nil или сообщение об ошибке для класса. Любой из них произойдет, если разработчик приложения удалит или переименует класс или его метод singleton. Вы принимаете этот риск каждый раз, когда вы пишете подключаемый модуль для приложения, у которого нет документированного поддерживаемого API подключаемого модуля.

Ваш «плагин» будет наиболее надежным, если весь ваш код, который взаимодействует с классами приложения и его экземплярами, выглядит полностью параноидальным.

+0

Я знал, что должна быть такая функция, но для жизни меня я не мог найти. Приятная вещь в SIMBL заключается в том, что вы можете ограничить плагин для работы только с версиями, с которыми вы его протестировали. –

 Смежные вопросы

  • Нет связанных вопросов^_^