MyObject : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSArray *notificationsArray;
我在tableView中有一个MyObjects数组,可以根据名称,通知时间等进行编辑。目前,我已经设置好了,所以当用户按下Save时,当前的MyObject会保存到我的DataManager的myObjectArray。 / p>
DataManager : NSObject
@property (nonatomic, strong) NSMutableArray *myObjectArray;
我在DataManager中调用我的方法来遍历该MyObject实例,以安排该MyObject的通知。
我认为这没问题,直到用户点击其中一个MyObjects来编辑时间,然后我才需要重新安排该对象的通知。我知道你可以得到
[[UIApplication sharedApplication] scheduledNotifications];
但是从这一点来看,我不知道哪个通知针对哪个对象。因此,在这种情况下,最好取消整个应用程序的所有通知,然后在DataManager中为每个MyObject实例循环遍历myObjectArray,并为每个对象安排通知吗?
谢谢!
答案 0 :(得分:6)
您可以使用userInfo属性将自定义数据与通知相关联。像这样构建:
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.userInfo = [NSDictionary dictionaryWithObject:@"myNotificationName" forKey:@"name"];
然后这样查看:
- (UILocalNotification *)notificationNamed:(NSString *)name {
for (UILocalNotification *notification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
NSString *notificationName = [notification.userInfo valueForKey:@"name"];
if ([notificationName isEqualToString:name])
return notification;
}
return nil;
}
答案 1 :(得分:0)
使用userInfo
类的NSDictionary
(UILocalNotification
类型)属性来区分通知查看此link