gpt4 book ai didi

objective-c - 使用 fireDate 初始化的 NSTimer 不会触发

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:25 25 4
gpt4 key购买 nike

我正在尝试使用 NSTimer 来调用方法,但它不起作用。我需要此方法在用户在日历上设置的特定日期和时间运行一次。

我的 viewDidLoad 方法中有这段代码:

NSDateComponents *comps = [[NSDateComponents alloc] init];

[comps setDay:24];
[comps setMonth:10];
[comps setYear:2011];

[comps setHour:23];
[comps setMinute:11];
[comps setSecond:0];


NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
schedulerTimer=[[NSTimer alloc] initWithFireDate:date interval:0 target:self selector:@selector(recordByScheduler:) userInfo:nil repeats:false];

但是这段代码什么也没做。可能我误解了 NSCalendar。我应该在这里做什么?第二个问题:应用程序在后台运行时 NSTimer 是否被触发?

最佳答案

你需要在runloop中调度定时器。

[[NSRunLoop currentRunLoop] addTimer:schedulerTimer forMode:NSDefaultRunLoopMode];

或类似,视情况而定。

对问题编辑的回复:

当您的应用程序处于后台时,不会触发 NSTimer。

关于objective-c - 使用 fireDate 初始化的 NSTimer 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882500/

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