我编写了以下代码来运行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 ?? 提前谢谢!
答案 0 :(得分:1)
问题在于您将计时器分配给类字段,而不是属性。
要使此代码正常工作,只需将self.
放在repeatServerRequest =
之前。
当您使用self.repeatServerRequest
时,编译器会调用[self setRepeatServerRequest:...]
并保留自动释放的计时器。
答案 1 :(得分:0)
你的班级有一个init方法吗?也许你没有把它放在你的代码中,但我更愿意问......