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 回答