У меня есть класс c ++ в моем приложении target-c (TC.h и TC.mm), и у него есть два метода следующим образом.
//TC.h
class TC
{
public:
void SetupPollTimer();
void Timeout();
}
//TC.mm
void TC::Timeout()
{
//Inside timer handler
}
void TC::SetupPollTimer()
{
//Setup Timer
//Want to use NSTimer here..
}
В основном, когда я вызываю SetupPollTimer (), я хочу запустить NSTimer с NSInvocation, чтобы он неоднократно вызывал метод Timeout.
Прежде всего, это даже возможно. Если это так, я был бы очень признателен за любые мысли или рекомендации относительно того же.
В этом случае вы просто используете эквивалент CoreFoundation; CFRunLoopTimer.
Вместо этого использование NSTimer часто означало бы, что вам необходим тип объекта objc привязки для использования в качестве параметра для ваших обратных вызовов таймера.
Делая это, вы бы установили TC this
к контекстной информации обратного вызова таймера. Тогда вы сможете получить доступ к своему экземпляру TC в обратном вызове.
Посмотрите на этот пост:
Использовать C ++ с какао вместо Objective-C?
Очевидно, что вы не можете написать Cocoa-Applications полностью на C ++, но есть способы для совместного использования кода между C ++ и Objective C.
РЕДАКТИРОВАТЬ
Хорошо, другой вариант — добавить таймер в класс, который обрабатывает этот файл CPP, и запускать метод CPP всякий раз, когда NSTimer запускается в файле обработчика.
Я нашел несколько методов для использования экземпляров C ++ в Objective C, но не наоборот.