2

特定のメソッドに入るたびに新しい 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]];

  }
4

1 に答える 1

2

あなたはもうすぐそこにいます: 配列を使うことは確かに正しいことです! 唯一の問題は、メソッドを実行するたびに配列の新しいインスタンスを作成し続けることですAddNewNotificationnotificationArrayインスタンス変数を作成し、その初期化コードをが宣言され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"];

等々。

于 2012-07-09T00:00:46.327 に答える