我想在每次输入某个方法时创建一个新的UILocalNotification。我认为这必须通过读取数据或沿着这条线的东西来完成,但我无法弄明白。如何在没有硬编码的情况下动态地执行此类操作:
-(void) createNotification
{
UILocalNotification *notification1;
}
现在,我希望每次输入createNotification时都能创建notification2,notification3等。由于具体原因,我可以在不取消所有通知的情况下取消相应的通知。
以下是我的尝试,也许我离开了......也许不是。无论哪种方式,如果有人可以提供一些意见,将不胜感激。谢谢!
-(void) AddNewNotification
{
UILocalNotification *newNotification = [[UILocalNotification alloc] init];
//[notificationArray addObject:newNotification withKey:@"notificationN"];
notificationArray= [[NSMutableArray alloc] init];
[notificationArray addObject:[[NSMutableDictionary alloc]
initWithObjectsAndKeys:newNotification,@"theNotification",nil]];
}
答案 0 :(得分:2)
你几乎就在那里:使用数组肯定是正确的做法!唯一的问题是,每次执行AddNewNotification
方法时,都会继续创建数组的新实例。您应该使notificationArray
成为实例变量,并将其初始化代码notificationArray= [[NSMutableArray alloc] init];
移动到声明notificationArray
的类的指定初始值设定项。
如果您希望为每个通知添加一个可以在以后找到的单个密钥,请使用NSMutableDictionary
代替NSMutableArray
。重写AddNewNotification
方法如下:
-(void) addNewNotificationWithKey:(NSString*)key {
UILocalNotification *newNotification = [[UILocalNotification alloc] init];
[notificationDict setObject:[[NSMutableDictionary alloc]
initWithObjectsAndKeys:newNotification,@"theNotification",nil]
forKey:key];
}
当您调用addNewNotificationWithKey:
方法时,您可以为新添加的通知提供密钥,例如
[self addNewNotificationWithKey:@"notification1"];
[self addNewNotificationWithKey:@"notification2"];
等等。