我的 UILocalNotification 有问题。
我正在用我的方法安排通知。
- (void) sendNewNoteLocalReminder:(NSDate *)date alrt:(NSString *)title
{
// some code ...
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
localNotif.fireDate = itemDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertAction = NSLocalizedString(@"View Details", nil);
localNotif.alertBody = title;
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:stringID forKey:@"id"];
localNotif.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
}
它工作正常,我正确地收到了通知。问题是我什么时候应该取消通知。我正在使用这个方法。
- (void) deleteNewNoteLocalReminder:(NSString*) reminderID noteIDe:(NSInteger)noteIDE
{
[[UIApplication sharedApplication] cancelLocalNotification:(UILocalNotification *)notification ????
}
我不知道在这里做什么,但我的问题是:
我如何知道应该删除哪个 UILocalNotification 对象?
有没有办法列出所有通知?
我唯一拥有的就是我应该删除哪个提醒的 ID。
我正在考虑将 UILocalNotification 对象保存在我的“Note”对象中并以这种方式获取它,当我保存到 SQLite 数据库时序列化该对象等等......有没有更聪明的方法?
我的解决方案是使用UILocalNotification
userInfo字典。事实上我所做的是生成一个唯一身份对于我的每一个通知(当然这ID是我稍后可以检索的内容),然后当我想取消与给定关联的通知时ID我将使用数组简单地扫描所有可用的通知:
[[UIApplication sharedApplication] scheduledLocalNotifications]
然后我尝试通过调查来匹配通知ID. E.g.:
NSString *myIDToCancel = @"some_id_to_cancel";
UILocalNotification *notificationToCancel=nil;
for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if([[aNotif.userInfo objectForKey:@"ID"] isEqualToString:myIDToCancel]) {
notificationToCancel=aNotif;
break;
}
}
if(notificationToCancel) [[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel];
我不知道这种方法相对于归档/取消归档方法是否更好,但它可以工作并将数据限制为仅保存为 ID。
编辑:缺少一个括号
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)