Iphone 多个同时的UILocalNotification

Iphone 多个同时的UILocalNotification,iphone,xcode,uilocalnotification,Iphone,Xcode,Uilocalnotification,如果我有两个(或更多)UILCalNotification,它们或多或少同时触发,并且应用程序在后台处于活动状态,我会发现: 同时向用户显示两个警报,一个覆盖另一个 当用户触摸顶部警报上的“View”时,警报将从屏幕上删除,并为此通知调用didReceiveLocalNotification,应用程序将进入前台 一旦从屏幕上删除顶部警报(并且应用程序已经在前台),用户就会看到它下面的警报 但是,如果用户也触摸此警报的“视图”,则不会发生任何事情。第二个通知不调用didReceiveLocalN

如果我有两个(或更多)UILCalNotification,它们或多或少同时触发,并且应用程序在后台处于活动状态,我会发现:

  • 同时向用户显示两个警报,一个覆盖另一个
  • 当用户触摸顶部警报上的“View”时,警报将从屏幕上删除,并为此通知调用didReceiveLocalNotification,应用程序将进入前台
  • 一旦从屏幕上删除顶部警报(并且应用程序已经在前台),用户就会看到它下面的警报
  • 但是,如果用户也触摸此警报的“视图”,则不会发生任何事情。第二个通知不调用didReceiveLocalNotification,应用程序无法知道用户也想查看此通知
如果当两个通知发出时应用程序恰好位于前台,则没有问题-对这两个通知逐个调用didReceiveLocalNotification(在本例中不显示警报)


在上述情况下,是否有办法获得两种“查看”确认的通知?我做错了什么吗?

警报视图需要将其委托设置为(通常设置为self)以接收事件。

实际上,以前的通知不调用didReceiveNotification委托方法(或任何其他方法,如果应用程序在后台弹出两个或多个通知)。但您可以根据需要跟踪以前的通知


例如,如果您有一个应用程序,它在单击“查看通知”时向服务器发送数据,然后每天将数据保存到plist(并每天对其进行编辑),通过“是”或“否”确定数据是否已发送。因此,当收到通知时,该应用程序将检查plist中以前报警的数据是否已发送。如果没有,那么它会在那个时候发送。所以这只是一个单一的方法

我确实说过,第一个警报(但第二个警报)调用代理。这足以表明委托设置正确。如果你认为你在苹果的系统中发现了一个bug,你可以提交一份bug报告。我使用本地通知,但没有让它们在如此近的距离内造成问题。我确实发现了一些iOS 5的通知问题,这些问题在加载5.0.1后得到了解决。我很高兴我发现了这些问题,因为我遇到了完全相同的问题。如果应用程序位于后台,并且我同时触发了三个警报,则在操作系统提示下选择“是”会将应用程序带到前台,但单击下面两个按钮的“查看”不会调用didReceiveLocalNotification。不知何故,内置的日历很好地处理了这个场景,这让我觉得这是我做错了什么,但你的发现证实了这一点。我将不得不寻找其他可能对用户更友好一点的解决方案,而不是出现似乎没有响应的警报。