我正在尝试了解UILocalNotification的applicationIconBadge属性。我只能设置一个明确的徽章值,我无法指定我只是希望它在通知触发时递增。
我正在尝试完成以下操作:一个通知触发,用户忽略它,第二个通知触发,用户忽略它。在这一点上,我希望徽章为2,但据我所知,我没有任何方法可以实现处理通知触发,但被忽略。我的didReceiveLocalNotification事件不会被调用。这意味着除了UILocalNotification.applicationIconBadge属性之外,我无法操纵徽章编号,该属性没有“只是递增”功能。
答案 0 :(得分:4)
我可以想到这样做的一种方法是在内部维护计数,当您创建每个通知时,为其分配正确的徽章属性。因此,如果您知道通知1将在通知2之前触发,则分配第一个1和第二个2.这将照顾您的问题,如上所述。
如果用户在通知1之后但在通知2之前启动应用程序,并取消第一个“1”徽章,则可以为所有剩余通知重新分配徽章属性。这比做直+ = 1还要多,但除非别人有更好的想法,否则我认为这是做到这一点的方法。
答案 1 :(得分:1)
查看我为UILocalNotification制作的这个类别:GitHub UILocalNotification
答案 2 :(得分:0)
我有理由相信applicationIconBadgeNumber的实现是错误的,或者至少不是根据文档中描述的内容。
我已在http://bugreport.apple.com/
提交了错误报告/增强功能您可以查看我在Open Radar中存档的报告:http://openradar.appspot.com/radar?id=767401
与此同时,我也采取了类似的行动来实现这种简单的行为。
根据Instapaper的开发人员Marco的说法,Apple优先考虑增强和功能请求,部分原因是有多少开发人员要求它们。
如果此功能对您很重要,我也建议您提交报告。