0

(サーバーから取得した)通知のリストを格納するtableViewがあります。特定の通知がユーザーによって表示されたかどうかを確認するにはどうすればよいですか?

考えていた

1) 通知 ID を NSUserdefaults に保存し、

2) アプリの起動時に、取得した通知リストを NSUserdefault のリストと照合します。

3) 通知が NSUserdefault に存在しない場合、通知 == 未読および BadgeValueCount++。

ただし、これは非常に非効率的でスケーラブルではないようです。

未読アイテムをチェックする(そして未読カウントでバッジを設定する)より効率的な方法を誰でもアドバイスできますか。ありがとう!

4

2 に答える 2

1

「通知」を単純に配列に保存しないのはなぜですか? 配列内のオブジェクトの数を取得したり、オブジェクトが配列内にあるかどうかを確認したりできます。

于 2011-07-13T18:07:57.823 に答える
1

これはシステムに大きく依存します。たとえば、ユーザーが通知を取得する複数のクライアントを持っている可能性があり、それらの間で同期が必要な場合、情報はユーザー データの一部としてサーバー側に保存する必要があります。これが純粋にクライアント側の問題であり、通知が時間によってインデックス化されている場合は、最後のプル日付を保存して、それよりも新しい通知の数をサーバーに問い合わせることができます。これらすべてに失敗した場合、通知 ID のリストは理にかなっています (ただし、ユーザーの既定値にそれを入れるのは奇妙に感じますが、きちんとした感覚と、時間の経過とともにアプリの既定値を肥大化させたくないという理由からです)。

于 2011-07-13T18:24:53.287 に答える