gpt4 book ai didi

iphone - 更新本地通知 BadgeNumber

转载 作者:行者123 更新时间:2023-11-28 17:34:37 25 4
gpt4 key购买 nike

我试图用应用程序角标(Badge)号显示今天的日期,当应用程序触发本地通知时应该更新这个日期,但问题是本地通知不更新日期!并仅显示我的项目创建当天的日期!这是我的代码:

- (void) viewDidLoad {

[self notification];

}

- (void) notification {


NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *now = [NSDate date];
NSDateComponents *componentsForFireDate = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit ) fromDate: now];

[componentsForFireDate year];
[componentsForFireDate month];
[componentsForFireDate day];
[componentsForFireDate setHour:1];
[componentsForFireDate setMinute:2];
[componentsForFireDate setSecond:1];

NSDate *fireDateOfNotification = [calendar dateFromComponents: componentsForFireDate];

UILocalNotification *notification = [[UILocalNotification alloc]init];
notification.fireDate = fireDateOfNotification;
notification.timeZone = [NSTimeZone localTimeZone]; notification.repeatInterval= NSDayCalendarUnit;


NSString *date = [self showGregorianFullDate];

notification.alertAction = @"View";
notification.soundName = UILocalNotificationDefaultSoundName;


//updating badge number :

NSCalendar* Calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *Components = [Calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit )fromDate:[NSDate date]];

int a = [Components day];
notification.applicationIconBadgeNumber = a;

[[UIApplication sharedApplication] scheduleLocalNotification:notification];

}

最佳答案

你只安排这一个通知吗?当通知触发时,它们不会运行任何代码。如果您的应用程序已打开,您可以处理通知,如果用户对您的通知采取行动,您将再次有机会处理它。

此通知被编程为将角标(Badge)编号设置为特定日期。这个数字是一个固定的数字。当通知被触发时,它不会自动改变。

应用程序角标(Badge)旨在显示许多未处理的通知 (as per the Human Interface Guidelines),因此可能不是显示日期的最佳位置。另外,如果您查看 app store review guidelines任何以人机界面指南中未描述的方式使用系统提供的项目的应用都可能被应用商店拒绝。

如果您继续沿着这条路走下去,那么您可能需要查看 Local Notification Programming Guide .它显示每个应用程序可以安排 64 个本地通知,并且您需要每天安排一个以将角标(Badge)编号更新到第二天。这意味着如果用户在 65 天内没有打开您的应用程序,角标(Badge)编号将是错误的,并且您也不会留下用于用户提醒的本地通知。

关于iphone - 更新本地通知 BadgeNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207433/

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