Как мне дать функции C указатель на 'self' (вызов obj) в объекте-c?

Всем привет! Я новичок в objective-c, поэтому мне еще никогда не приходилось решать эту проблему. У меня есть функция C в моем классе objective-c, и я хочу иметь возможность вызывать метод для свойства содержащего класса objective-c.

Я понимаю, что моя функция C не поймет, что такое «я», если я попытаюсь просто отправить сообщение [self.delegate doSomething]

Я предполагаю, что мне нужно дать моей функции c указатель на мою class, чтобы я мог сделать что-то вроде этого:

myClass-> delegate -> doSomething ();

Я хотел бы сохранить указатель на текущий объект (self) в глобальной переменной, потому что я не могу изменить сигнатуры функций. Я хочу иметь доступ к указателю из любой функции C, определенной в этом классе. Причина в том, что я пишу оболочку для библиотеки C, которую пытаюсь использовать. Если это может быть полезно ... Я бы предпочел не изменять исходный код этой библиотеки.

Кто-нибудь может мне помочь с получением указателя на текущий объект? Спасибо!

 void event_privmsg (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
    //[self.delegate privateMessage]; I would like to do the following
}
8
задан Nick 27 April 2011 в 03:10
поделиться