创建多个UILocalNotifications

时间:2012-07-08 23:50:02

标签: objective-c ios xcode

我想在每次输入某个方法时创建一个新的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]];

  }

1 个答案:

答案 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"];

等等。