【发布时间】:2012-06-18 23:45:20
【问题描述】:
在我的项目中实现它之前,我已经创建了一个带有计时器的测试应用程序。
这是我第一次使用计时器。
但问题是当我使用 [NSTimer timerWithTimeInterval: target: selector: userInfo: repeats: ]; 实现计时器时,它不起作用。
这是我的代码,
接口:
@interface uialertViewController : UIViewController
{
NSTimer *timer;
}
-(void)displayAlert;
-(void)hideandview;
@end
实施:
@implementation uialertViewController
- (void)viewDidLoad {
[self displayAlert];
[super viewDidLoad];
}
-(void)displayAlert{
timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(hideandview) userInfo:nil repeats:NO];
alert = [[UIAlertView alloc] initWithTitle:@"testing" message:@"hi hi hi" delegate:nil cancelButtonTitle:@"continue" otherButtonTitles:nil];
[alert show];
[alert release];
alert = nil;
}
-(void)hideandview{
NSLog(@"triggered");
[alert dismissWithClickedButtonIndex:0 animated:YES];
[alert release];
[self displayAlert];
}
@end
然后我改变了 [NSTimer timerWithTimeInterval: target: selector: userInfo: repeats: ]; 与 [NSTimer scheduledTimerWithTimeInterval: target: selector:userInfo: repeats: ]; ,它正在工作。 timerWithTimeInterval: 有什么问题?我在第一次实施中遗漏了什么吗?提前致谢。
【问题讨论】:
-
timerWithTimeInterval 创建计时器但不启动它,而 schedule... 会。我认为这是唯一的区别
-
@rooster117: 那我需要调用定时器触发方法,对吗?
-
是的,或者当你想启动它时只调用 scheduleTimerWithTimeInterval 。无论哪种方式
-
用详细代码提出的写得很好的问题!