NSTimer选择器未被调用

时间:2012-07-03 12:03:57

标签: ios nstimer

我编写了以下代码来运行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 ?? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

问题在于您将计时器分配给类字段,而不是属性。

要使此代码正常工作,只需将self.放在repeatServerRequest =之前。

当您使用self.repeatServerRequest时,编译器会调用[self setRepeatServerRequest:...]并保留自动释放的计时器。

答案 1 :(得分:0)

你的班级有一个init方法吗?也许你没有把它放在你的代码中,但我更愿意问......