gpt4 book ai didi

ios - NSTimer timerWithTimeInterval : not working

转载 作者:IT王子 更新时间:2023-10-29 07:47:55 24 4
gpt4 key购买 nike

在我的项目中实现它之前,我已经创建了一个带有计时器的测试应用程序。这是我第一次使用定时器。但问题是当我使用 [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: 有什么问题? ?我在我的第一次实现中错过了什么吗?提前致谢。

最佳答案

scheduledTimerWithTimeInterval:invocation:repeats:scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: 创建自动添加到 NSRunLoop 的计时器,这意味着您不必自己添加它们。将它们添加到 NSRunLoop 是导致它们触发的原因。

使用 timerWithTimeInterval:invocation:repeats:timerWithTimeInterval:target:selector:userInfo:repeats:,您必须手动将计时器添加到运行循环中,使用代码像这样:

[[NSRunLoop mainRunLoop] addTimer:repeatingTimer forMode:NSDefaultRunLoopMode];

此处的其他答案表明您需要自己调用fire。你不需要 - 一旦定时器进入运行循环,它就会被调用。

关于ios - NSTimer timerWithTimeInterval : not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com