Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UILocalNotification:在repeatInterval期间更新BadgeNumber_Iphone_Objective C_Xcode_Uilocalnotification - Fatal编程技术网

Iphone UILocalNotification:在repeatInterval期间更新BadgeNumber

Iphone UILocalNotification:在repeatInterval期间更新BadgeNumber,iphone,objective-c,xcode,uilocalnotification,Iphone,Objective C,Xcode,Uilocalnotification,在盯着眼睛看了两天之后,我找不到任何解决方案,好像每个人(除了我)都清楚一样 我需要: Alert.applicationIconBadgeNumber = x 要在每次发出通知时在后台更新,我将通过以下方式重复通知: notif.repeatInterval = NSMinuteCalendarUnit 每1米重复一次效果很好。当应用程序进入后台,但徽章号码没有更新时,它只接受第一次更新的日期值 我正在通过viewDidLoad调用scheduleNotification方法 这是

在盯着眼睛看了两天之后,我找不到任何解决方案,好像每个人(除了我)都清楚一样

我需要:

Alert.applicationIconBadgeNumber = x  
要在每次发出通知时在后台更新,我将通过以下方式重复通知:

notif.repeatInterval = NSMinuteCalendarUnit  
每1米重复一次效果很好。当应用程序进入后台,但徽章号码没有更新时,它只接受第一次更新的日期值

我正在通过viewDidLoad调用scheduleNotification方法

这是我的全部代码:
请告知如何修复,谢谢大家。

由于操作系统会在计划时复制通知,因此通知中的数据不会更新,因此应用程序标记号不会更改

也许,如果您不重复通知,而是为每个时间间隔生成自己的新通知,它将为您提供所需的行为。我能想到的生成通知的唯一方法是在scheduleNotification方法中发布一堆通知,然后记住在用户以正确的方式响应时删除通知。由于操作系统只记得下一个按时间顺序安排的64个通知,因此您只能安排大约一个小时的时间。由于您的徽章号码似乎是当前日期,您可以查看时间,只有在午夜后一小时内,才需要设置这么多通知


我不明白你这么频繁地唠叨用户,也不告诉他们徽章号码上的日期,你想达到什么目的。任何让我如此烦恼或滥用徽章号码的应用程序都会很快从我的iOS设备上删除。也许重新思考您试图实现的目标可以指导您找到更好的解决方案。

我知道这已经得到了回答,但您可以使用NSUserDefaults作为缓存徽章计数的方法。然后在
applicationBadgeNumber
中,您可以使用如下内容:

notif.applicationIconBadgeNumber = ([NSUserDefaults standardUserDefaults] integerForKey:@"badgeCount"] + 1);

然后,当用户做出相应响应时,您可以将其重置。

谢谢伯纳先生,但在后台时,我无法及时生成新通知。我尝试使用NSTimer,但没有在(ApplicationIdentinterBackground)中调用它。有什么建议吗?再次感谢你,我的朋友,你的建议是唯一的办法,我会试试看。关于您的评论:分钟通知仅用于测试目的,最终通知将每天进行。我还要感谢你把我的注意力转移到了64位。问题,这也是我一直在寻找的。又是thx。你能写一些代码行吗?我尝试了你的解决方案,但没有成功。@hafedh当然,我很乐意提供帮助,但请你打开一个新问题,详细说明你正在尝试做什么,然后将链接发布到这里。非常感谢,以下是全部内容:
notif.applicationIconBadgeNumber = ([NSUserDefaults standardUserDefaults] integerForKey:@"badgeCount"] + 1);