2

私はC関数で何かを実装していて、NSTimerメソッドを使用して別のCメソッドを呼び出したいのですが、セレクターが機能せず、selfメソッドも呼び出されません。どうすればそれができますか?

 [NSTimer scheduledTimerWithTimeInterval:900 target:self selector:@selector(prepareToUploadLog()) userInfo:nil repeats:YES];

void prepareToUploadLog(void) は別の関数です

4

1 に答える 1

1

のドキュメントによるとscheduledTimerWithTimeInterval

aSelector:タイマーが起動したときにターゲットに送信するメッセージ。セレクターは、void を返し、単一の引数を取るメソッドに対応している必要があります。タイマーは、このメソッドに引数として自身を渡します。

したがって、C 関数を使用することはできず、C 関数をラップする Objective C メソッドを追加する必要があります。

- (void)prepareToUpload
{
    prepareToUploadLog();
}
于 2012-08-31T10:14:19.553 に答える