0

使用しているアプリを使用して、ユーザーがUILocalNotificationsを設定および削除できるようにします。これを開発する過程で、テスト用にUILocalNotificationsを追加および削除しましたが、機能しているようです。

ただし、デバイスからアプリを削除し、通知を設定せずに再度実行した後、UILocalNotificationを取得するという奇妙な動作が見られます。この通知は、この新規インストールでは設定されませんでした(通知セットアップメソッドにブレークポイントを追加することで確認できます)。

以前のインストールで孤立したUILocalNotificationがある可能性はありますか(はい、私にもそうは思われません)。

通知を新しいインストールごとに固有のものに設定してこれをデバッグしようとしましalertBodyたが、この一意の文字列はアラートに表示されません。例えば:

notif.alertBody = [NSString stringWithFormat:@"Alert for: %@", alertName];

誰かが以前にこの種の行動を見たことがありますか?

更新:孤立したUILocalNotificationsを確認しました:デバイスからアプリを削除し、のrootViewControllerで以下のコードを実行しましたviewDidAppear。コンソールに次の出力が表示されます。

2013-03-14 14:20:07.439 TestApp[16606:907] found alert: uigffhy
2013-03-14 14:20:07.444 TestApp[16606:907] found alert: uigffhy

このユーザーが以前のインストールから来た場所。うーん。

NSArray *notificationArray = [[UIApplication sharedApplication] scheduledLocalNotifications];

for (UILocalNotification *notif in notificationArray) {
    NSDictionary * info = notif.userInfo;
    NSString * name = [info objectForKey:@"sequenceName"];
    NSLog(@"found alert: %@", name);

}
4

1 に答える 1

1

NSUserDefaults(を使用して)新規インストールであるかどうかを検出し、次の手順を実行します。applicationDidFinishLaunching:

[[UIApplication sharedApplication] cancelAllLocalNotifications];
于 2013-03-14T18:47:43.037 に答える