gpt4 book ai didi

objective-c - 如何在特定日期执行一个方法?

转载 作者:行者123 更新时间:2023-12-03 17:33:43 25 4
gpt4 key购买 nike

我的 Mac 应用程序会在特定时间更新其徽章编号。
这是我的功能:

- (void)setBadgeNumber
{
// Sets the badge number to 1.
[[[NSApplication sharedApplication] dockTile] setBadgeLabel:@"1"];

// Sends a notification.
NSUserNotificationCenter *nc = [NSUserNotificationCenter defaultUserNotificationCenter];
NSUserNotification *notification = [[NSUserNotification alloc] init];
notification.title = @"Update";
notification.informativeText = @"There's something new in the app!";
[nc deliverNotification:notification];
}

我想知道您是否可以在某个日期执行此函数(例如:2015 年 8 月 8 日)。
即使应用程序未运行(即使应用程序正在运行)。
有人知道您是否可以在特定日期(和时间)执行某个方法吗?

最佳答案

您有很多选择,具体取决于您的需求。

明显的起点是 NSTimer。

还有 PerformSelector withDelay 函数系列。

最后,我有时会使用一个很酷的扩展,延迟 block 。

哦,还有一个 - 您还可以设置本地通知。

我更喜欢 NSTimer 的 initWithFireDate:interval:target:selector:userInfo:repeats:

更新

NSTimer:

NSTimer *saveProgressSizeTimer = [[NSTimer alloc]
initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:2.0f]
interval:1.0f
target:self
selector:@selector(myMethod:)
userInfo:myUserInfo
repeats:YES]; // This Will Be Executed After 2 Seconds

dispatch_after

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
NSLog(@"parameter1: %d parameter2: %f", parameter1, parameter2);
}); // This Will Be Executed After 10 Seconds

关于objective-c - 如何在特定日期执行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299436/

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