gpt4 book ai didi

objective-c - 如何在 xcode 4.5 中创建倒数计时器

转载 作者:行者123 更新时间:2023-12-01 17:59:30 26 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .




9年前关闭。




好的,我想创建多个计时器,它们都在不同的时间(25、50,1 分钟、1 分钟 30 秒……)开始,但我不知道如何让它在它达到 0 时停止,当它达到零时,带上“播放器”换一种说法。

这是我的 .h 文件

@interface ViewController :UIViewController {

IBOutlet UILabel *seconds;

NSTimer *timer;

int MainInt;
}

@end

这是我的 .m 文件
@implementation ViewController

-(void)countDownDuration {

MainInt -= 1;

seconds.text = [NSString stringWithFormat:@"%i", MainInt];

}

-(IBAction)start:(id)sender {

MainInt = 25;

timer = [NSTimer scheduledTimerWithTimeInterval:1.0

target:self
selector:@selector(countDownDuration)
userInfo:nil
repeats:YES];
}

@end

最佳答案

NSTimer 不会自动执行此操作,但将其添加到您的 countDownDuration 方法很简单。例如:

-(void)countDownDuration {
MainInt -= 1;
seconds.text = [NSString stringWithFormat:@"%i", MainInt];
if (MainInt <= 0) {
[timer invalidate];
[self bringThePlayerToAnotherView];
}
}

当然,您要创建多个计时器。您可以将每个变量存储在不同的变量中,并为每个变量分配一个不同的选择器。但是如果你查看 NSTimer 的文档,回调方法实际上将定时器对象作为选择器;你忽略了它,但你不应该。

同时,您可以将所需的任何类型的对象存储为计时器的 userInfo,因此这是为每个计时器存储单独的当前倒计时值的好地方。

因此,您可以执行以下操作:
-(void)countDownDuration:(NSTimer *)timer {
int countdown = [[timer userInfo] reduceCountdown];
seconds.text = [NSString stringWithFormat:@"%i", countdown];
if (countdown <= 0) {
[timer invalidate];
[self bringThePlayerToAnotherView];
}
}

-(IBAction)start:(id)sender {
id userInfo = [[MyCountdownClass alloc] initWithCountdown:25];
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(countDownDuration:)
userInfo:userInfo
repeats:YES];
}

我留下了一些未写的细节(比如 MyCountdownClass 的定义——它必须包括方法 initWithCountdown:reduceCountdown 做正确的事情),但它们都应该非常简单。 (此外,您可能想要一个 userInfo 存储的不仅仅是倒计时值——例如,如果每个计时器将玩家发送到不同的 View ,您也必须将 View 存储在那里。)

PS,注意你现在需要 @selector(countDownDuration:) . ObjC 的新手总是把这件事搞砸。 countDownDuration:countDownDuration是完全不相关的选择器。

PPS, MyCountdownClass 的完整定义必须在 countDownDuration: 中可见(除非您有其他具有相同选择器的类)。您可能想要显式转换 userInfo 的结果至 MyCountdownClass *让事情更清楚。

关于objective-c - 如何在 xcode 4.5 中创建倒数计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504341/

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