0

コードの継続的な実行を担当する「更新メソッド」の王様を持つアプリを作成しています。NSTimer無期限に繰り返すオプションがあるため、を使用することを考えました。私はそれを次のようにロードします:

gameTimer = [NSTimer timerWithTimeInterval:0.01428 target:self selector:@selector(GameUpdate:) userInfo:NULL repeats:true];

宣言GameUpdate:は次のようになります。

-(void)GameUpdate:(NSTimer*)timer;

問題は、内部のコードがGameUpdate:実行されないことです。xcode 4.2で動作していました。どうしてこれなの?

4

1 に答える 1

0

新しく作成した NSTimer オブジェクトを実行ループに追加する必要があります。

この関連する質問への回答から持ち上げられました):ドキュメントが言うように:

タイマーは実行ループと連携して機能します。タイマーを効果的に使用するには、実行ループがどのように動作するかを認識しておく必要があります。NSRunLoop およびスレッディング プログラミング ガイドを参照してください。特に、実行ループはタイマーを保持するため、タイマーを実行ループに追加した後にタイマーを解放できることに注意してください。

関連する質問に対する他の回答を見ると、実行ループに自動的に追加される NSTimer オブジェクトを作成する方法がわかります。

于 2012-05-29T01:58:40.217 に答える