【发布时间】:2013-03-15 02:47:43
【问题描述】:
我正在使用的应用程序允许用户设置和删除 UILocalNotifications。在开发过程中,我添加和删除了 UILocalNotifications 进行测试,它似乎正在工作。
但是我看到奇怪的行为,在从设备中删除我的应用并再次运行它没有设置任何通知后,我会得到一个 UILocalNotification。此全新安装中未设置此通知(通过在我的通知设置方法中添加断点进行检查)。
我是否有可能从以前的安装中获得了一个孤立的 UILocalNotification(是的,这对我来说似乎也极不可能)。
我已尝试通过将通知 alertBody 设置为特定于每个新安装的内容来调试此问题,但此唯一字符串不会显示在警报中。例如:
notif.alertBody = [NSString stringWithFormat:@"Alert for: %@", alertName];
以前有人见过这种行为吗?
更新:刚刚确认孤立的 UILocalNotifications:从设备中删除了该应用,并在我的 rootViewController 中 viewDidAppear 上运行以下代码。我在控制台中得到以下输出:
2013-03-14 14:20:07.439 TestApp[16606:907] found alert: uigffhy 2013-03-14 14:20:07.444 TestApp[16606:907] found alert: uigffhy
此用户在以前的安装中所在的位置。呃。
NSArray *notificationArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (UILocalNotification *notif in notificationArray) {
NSDictionary * info = notif.userInfo;
NSString * name = [info objectForKey:@"sequenceName"];
NSLog(@"found alert: %@", name);
}
【问题讨论】: