Синглтоны в плагинах какао - PullRequest
0 голосов
/ 21 мая 2010

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

1 Ответ

1 голос
/ 21 мая 2010

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

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

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

...