每天更新一次申请徽章

时间:2012-12-28 01:44:34

标签: iphone objective-c ios nsdate

这是我的代码,我将日期放在应用程序徽章中。我想知道如何在不进入应用程序的情况下每天重新加载此号码以重新加载它。提前谢谢!

NSDate *today = [NSDate date];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comp = [cal components:NSDayCalendarUnit fromDate:today];
NSInteger day = [comp day];
[UIApplication sharedApplication].applicationIconBadgeNumber = day;

2 个答案:

答案 0 :(得分:1)

一种相对简单的方法是将设置徽章的代码放在后台。您可以使用[UIApplication beginBackgroundTaskWithExpirationHandler]或相关的电话来实现此目的。唯一的问题是这种执行有10分钟的限制。话虽如此,有一些技巧可以用来规避这个限制。这是一个讨论这个主题的优秀主题:Run app for more than 10 minutes in background

答案 1 :(得分:0)

我有以下代码:

NSDate *fireTime = [[NSDate date] addTimeInterval:3600*24];
notification.fireDate = fireTime;
notification.alertBody = @"Your Message!";
notification.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];

如果您在模拟器上进行测试,那可能就是您没有获得输出的原因。在设备上测试它,看看它是否正常工作。