1

Objective-cアプリケーション(TC.hとTC.mm)にc ++クラスがあり、次の2つのメソッドがあります。

//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()を呼び出すときは、NSInvocationを使用してNSTimerを起動し、Timeoutメソッドを繰り返し呼び出すようにします。まず第一に、これも可能ですか。もしそうなら、私は同じことに関する考えやガイダンスを本当にいただければ幸いです。

4

2 に答える 2

2

この場合、同等のCoreFoundationを使用するだけです。CFRunLoopTimer。

代わりにNSTimerを使用すると、タイマーコールバックのパラメーターとして使用するバインディングobjcオブジェクトタイプが必要になることがよくあります。

そうすることで、TCthisをタイマーコールバックのコンテキスト情報に設定します。そうすれば、コールバックでTCインスタンスにアクセスできるようになります。

于 2012-10-22T13:58:37.020 に答える
0

この投稿を見てください:

Objective-Cの代わりにCocoaでC++を使用しますか?

どうやら、Cocoa-Applicationsを完全にC ++で書くことはできませんが、C++とObjectiveCの間でコードを共有する方法はあります。

編集

OK、別のオプションは、そのCPPファイルを処理するクラスにタイマーを追加し、NSTimerがハンドラーファイルで起動するたびにCPPメソッドを起動することです。

私はObjectiveCでC++インスタンスを使用するためのいくつかのテクニックを見つけましたが、その逆はありませんでした。

于 2012-10-22T12:21:16.997 に答える