gpt4 book ai didi

objective-c - 关于 iOS 本地通知的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:53 24 4
gpt4 key购买 nike

我现在在应用程序中使用本地通知,但我发现了一些奇怪的事情。

我设置并安排了这样的通知。

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) {
return;
}
NSDate *now = [[NSDate alloc] init];
now = [now dateByAddingTimeInterval:dayToFinish * 24 * 60 * 60];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:now];

components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:now];
int month = [components month];
int day = [components day];
int year = [components year];

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setYear:year];
[dateComps setMonth:month];
[dateComps setDay:day];
[dateComps setHour:18];
[dateComps setMinute:15];
[dateComps setSecond:0];

//There are a lot to set up the fire date, you could ignore it.
NSDate *fireDate = [calendar dateFromComponents:dateComps];

localNotif.fireDate = fireDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = [NSString stringWithFormat:@"Test message %@", self.name];
localNotif.applicationIconBadgeNumber = 1;

NSDictionary *infoDict = [NSDictionary dictionaryWithObject:self.name forKey:@"ListRecordName"];
localNotif.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

这部分代码可以被调用多次来调度多个本地通知,现在奇怪的事情来了。

  1. 虽然通知中心有多个条目,但角标(Badge)编号仍然是一个。
  2. 单击其中一个通知后,所有其他通知都会消失。但是我没有使用 cancelAllLocalNotifications 方法。

我该如何解决这个问题,谢谢。

最佳答案

当您的应用程序处于后台时,无法使用本地通知动态更新角标(Badge)编号。您必须使用推送通知。

关于objective-c - 关于 iOS 本地通知的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13794202/

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