2012-05-14 4 views
1

概要iOSの - UILocalNotification - 与えられた時間にのみ、最大64個のスロットをスケジュールすることができ

  • 私は特定の日付でローカル通知を送信iOSアプリを持っています。
  • 私は、ある時点で64の通知のみをスケジュールできることを知りました。
  • 64スロットが満杯になると通知をスケジュールできない場合があります。
  • 私はそれらをデータベースに保存し、ユーザーが通知に応答すると、使用可能なスロットがあるかどうかを確認し、残りの通知をスケジュールします。

  • ユーザーが自分のコードが実行されていない通知に応答しない問題ので、私は残りの通知をスケジュールすることはできませんよ。

質問

  1. は、この問題の解決策はありますか?
  2. 特定の時間にコードを保存できますか?
  3. これには何か回避策がありますか?
+0

これがまだ必要かどうかわかりません。 scheduledNotifications配列の管理はどうですか?その配列に実際に部屋があるかどうかを確認できます。または、配列が一杯になったときに配列の最初の項目を空にして、アプリケーションでフォローアップする必要があるものとしてフラグを立てることもできます。 – Michael

+0

Micheal、あなたは礼儀正しくあります。配列に空きがあるかどうかを確認し、保留中の通知をスケジュールします。しかし、私はアプリが開いているときにのみそれを行うことができます。だから、ユーザーがアプリを開くことを決定しない場合、私は部屋があるかどうかを確認することはできません。 – user1046037

+0

私が考えることができる最高のは、データベースを作成し、すべての保留中の通知を格納することです。ユーザーがアプリを開くと、保留中の通知をスケジュールできる場合、アプリは可能なときに(通知が削除された後または通知が放棄された後に)チェックします。アプリが開かれていないときにも、それほど多くは行えません。また、エントリを作成する前に通知をスケジュールすることができるかどうかを慎重に確認する必要があります。それ以外の場合は、通知が発生するたびにアプリケーションを開く必要がある可能性があることを通知し、コードが実行されます。 – user1046037

答えて

2

問題があることをユーザーに知らせるのではなく、バックグラウンドで行うだけです。あるアプリの通知が64件あり、アプリを開いていない場合は、おそらくアプリを使用していない可能性があります。一度通知が発せられると、それはもはや配列にはありません。通知が発せられるたびに、あなたは部屋を確保します。しかし、彼らはあなたが自分自身をクリアする必要がある通知センターに残っています。

通常、ユーザーには問題が発生しないようにしてください。オプションであれば内部的に意味をなさない方法で処理してください。 appDelegateのデリゲートメソッドを調べると、実行しようとしていることを処理できる方法が見つかる可能性が高くなります。

私はあなたが答えを受け入れることを望む場合に備えて投稿を行います。

幸運のベスト。

+0

そのヒントのマイケルありがとう、ええ、私はあなたが言ったことは、ユーザがアプリケーションを開いていない場合、おそらく彼はそれをもう使用していないことを意味すると思います。ノンリピート通知が自動的に発生すると、それは[[UIApplication sharedApplication] scheduledLocalNotifications]から削除されるため、手動でクリアする必要はありません。私はスロットが利用可能であるとき、保留中の通知をスケジュールしようとします。 – user1046037

+0

それと幸運:)。 – Michael

関連する問題