きっかけは5年前のこの記事
【Swift5】ローカル通知(UNUserNotificationCenter)の最大登録数について
記事の内容は「実験の末、ローカル通知の登録数は64が限界」だという結論だった。
ただ、私には以下の疑問が。
- iPhoneの機種によって変わるのでは?
- iOSのバージョンによって変わるのでは?
他の「最大数が64」と書かれている日本の記事を見ても根拠がない。なので調べてみることにした。
結論
公式ドキュメントに最大登録数が64という記載がありました。また、実験的にも2024/5/31時点では64個が限界でした。
UILocalNotification(公式ドキュメント)
アプリは、限られた数のスケジュール通知しか持つことができません。システムは、(自動的に再スケジュールされた通知が1つの通知としてカウントされる)最新の64個の通知を保持し、残りを破棄します。
UILocalNotification
はUNNotificationRequest
の前身?(著者はよくわかってない)ぽいです。
UNUserNotificationCenter
やUNNotificationRequest
の公式ドキュメントページを見ても最大登録数が64という記載はないですが、前身が言ってるんだから本当っぽいですね。
また、調べた感じiOS9(2015年)から現在に至るまで、最大数は64です。なので、これからも最大登録数64が変わるのは期待しない方が良いと思います。
参考:Is there still a ~64 local notification limit for the new UserNotifications in iOS 10?
最大登録数64を超える方法
海外では最大登録数を超える方法が議論されていました。
参考1:How to overcome Local Notifications limits
参考2:LocalNotification limit
結論として、64個以上を登録する方法はありません。
ただ、手段として「アプリを開いたときに直近の通知64個を組み込む」が紹介されていました。
Todoアプリなど、頻繁に開くアプリであればこの方法を使えそうな気がしますね
実験もしてみた
この方の記事は2019年更新であり、「現在(2024/5/31)と5年前では状況が変わるのでは?」と微かな希望を抱き、実験もしてみました。
【Swift5】ローカル通知(UNUserNotificationCenter)の最大登録数について
実験内容:1~100のローカル通知を順番に作成
5年前と全く同じ結果でした。64個を超えると古い通知が削除されています。
おわりに
最後に宣伝です。
このような誕生日を通知するiosアプリをリリースしています。
誕生日book-通知とメモをリストで管理
このアプリも通知最大数64であることを記載しないといけないな〜