Цель c — Добавление NSTimer в класс C ++

У меня есть класс 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.
Прежде всего, это даже возможно. Если это так, я был бы очень признателен за любые мысли или рекомендации относительно того же.

1

Решение

В этом случае вы просто используете эквивалент CoreFoundation; CFRunLoopTimer.

Вместо этого использование NSTimer часто означало бы, что вам необходим тип объекта objc привязки для использования в качестве параметра для ваших обратных вызовов таймера.

Делая это, вы бы установили TC this к контекстной информации обратного вызова таймера. Тогда вы сможете получить доступ к своему экземпляру TC в обратном вызове.

2

Другие решения

Посмотрите на этот пост:

Использовать C ++ с какао вместо Objective-C?

Очевидно, что вы не можете написать Cocoa-Applications полностью на C ++, но есть способы для совместного использования кода между C ++ и Objective C.

РЕДАКТИРОВАТЬ

Хорошо, другой вариант — добавить таймер в класс, который обрабатывает этот файл CPP, и запускать метод CPP всякий раз, когда NSTimer запускается в файле обработчика.

Я нашел несколько методов для использования экземпляров C ++ в Objective C, но не наоборот.

0

По вопросам рекламы [email protected]