0

私は実行するために書かれた次のコードを持っていますNSTimer。しかし、NSTimerセレクターは呼び出されていません。

.hファイル

@interface XViewController : UIViewController {
   NSTimer *repeatServerRequest;
}

@property(nonatomic, retain) NSTimer *repeatServerRequest;

- (void)checkForMinimunOnetimePinEntry;
- (void) initializeTimer;
- (void)stopTimer;

.mファイル

@synthesize repeatServerRequest;

- (void)checkForMinimunOnetimePinEntry {
   // some code
}

- (void) initializeTimer {
    repeatServerRequest = [NSTimer scheduledTimerWithTimeInterval:15.0
                                    target:self
                                    selector:@selector(checkForMinimunOnetimePinEntry)
                                    userInfo:nil
                                    repeats:YES];
}

- (void)stopTimer {
    [repeatServerRequest invalidate];
    [repeatServerRequest release];
    repeatServerRequest = nil;

//    [self.repeatServerRequest invalidate];
//    [self.repeatServerRequest release];
//    self.repeatServerRequest = nil;
}

私は何が間違っているのですか?

また、どちらを使用するのが正しいかを私に答えてください:self.repeatServerRequestまたは単にrepeatServerRequest ?? 前もって感謝します!

4

2 に答える 2

1

問題は、プロパティではなくクラスフィールドにタイマーを割り当てることです。

このコードを機能させるには、のself.前に置きrepeatServerRequest =ます。

を使用するself.repeatServerRequestと、コンパイラは[self setRepeatServerRequest:...]自動解放されたタイマーを呼び出して保持します。

于 2012-07-03T12:09:20.537 に答える
0

クラスのinitメソッドはありますか?おそらくあなたはそれをあなたのコードに入れなかったでしょう、しかし私は尋ねることを好みます...

于 2012-07-03T12:21:45.637 に答える