1

ボタンをタップするたびにユーザーにポイントを与える単純なボタン ゲームを作成しました。ボタンは 1.5 秒ごとにランダムに画面に表示されます。30 秒後、またはランダムなボタンが 20 回ポップアップした後にゲームを終了させたい。以下のコードを使用して、画面にボタンをランダムにポップアップさせました。

timer = [NSTimer scheduledTimerWithTimeInterval: 1.5 target:self
         selector:@selector(moveButton:) 
         userInfo:nil 
         repeats:YES];

ヘッダー ファイルでタイマーを宣言しました。

NSTimer *timer;
@property (nonatomic, retain) NSTimer *timer;

タイマーの使用に関する Apple Docs を読みましたが、完全には理解できませんでした。私はおそらく私が使用できると思いました:

- (void)countedTimerFireMethod:(NSTimer *)timer{
  count ++;
  if(count > 20){
     [self.timer invalidate];
     self.timer = nil;

しかし、それは正しく動作しません。私は何を間違っていますか?私は Objective-C を初めて使用するので、物事がどのように機能するかについてあまり詳しくありません。

4

2 に答える 2

4

問題は、moveButton メソッドを渡しているタイマー メソッドにありますが、タイマーを停止している以下のメソッドでは、メソッド名が異なるため、これを試してください:-

  self.timer = [NSTimer     
  scheduledTimerWithTimeInterval: 1.5 target:self
     selector:@selector(moveButton:) 
     userInfo:nil 
     repeats:YES];

//以下のメソッド名を変更するだけ

 - (void)moveButton:(NSTimer *)timer{
  count ++;
  if(count > 20){
    [self.timer invalidate];
    self.timer = nil;}
于 2013-10-26T17:42:53.877 に答える