1
MyObject : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSArray *notificationsArray;

名前、通知の時間などを編集できる tableView に MyObjects の配列があります。現在、ユーザーが [保存] を押すと、現在の MyObject が DataManager の myObjectArray に保存されるように設定しています。

DataManager : NSObject
@property (nonatomic, strong) NSMutableArray *myObjectArray;

DataManager でメソッドを呼び出して、その MyObject インスタンスをループし、その MyObject の通知をスケジュールします。

ユーザーが MyObjects のいずれかをクリックして時間を編集し、そのオブジェクトのみの通知を再スケジュールする必要があるまで、これで問題ないと思います。私はあなたが得ることができることを知っています

[[UIApplication sharedApplication] scheduledNotifications];

しかし、これでは、どの通知がどのオブジェクトに対して行われたのかわかりません。このシナリオでは、アプリ全体のすべての通知をキャンセルしてから、MyObject インスタンスごとに DataManager の myObjectArray をループし、各オブジェクトの通知をそのようにスケジュールする方がよいでしょうか?

ありがとう!

4

2 に答える 2

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;
}
于 2012-04-12T05:01:39.590 に答える
0

userInfoクラスの( NSDictionarytype) プロパティを使用UILocalNotificationして、通知を区別します

このリンクを参照してください

于 2012-04-12T05:01:15.217 に答える