今日、職場で、開発中の iPad アプリケーション内のバグを修正するタスクを与えられました。この問題は、アプリと Web サービス間の同期に関する情報の更新が正しく表示されないこと、または同期すべきタイミングでアプリの不整合が発生し、UIButton に表示される情報が正しくないことに関連しています。更新されたデータやその他のメタ情報を取得するための Web サービスのクエリは、いくつかのサブクラス化された NSOperation クラスで発生します。何らかのイベントが終了したとき、または NSOperation サブクラスに含まれていないものが更新されると、NSOperationQueue のメイン キューにブロック付きの操作を追加することにより、通知センターを使用して通知が投稿されます。同期は、アプリが最初に読み込まれたときと 5 分ごとに行われます。アプリがバックグラウンドにあるときに 5 分マークが発生した場合、
受信トレイ ビュー コントローラーが割り当てられ、ビューが表示されると、UIButton は同期が進行中であることを示しませんが、ボタンをタップして同期を開始できます。ビューのインボックス ビュー コントローラーで、メソッドが表示されます。コードは、syncInProgress かどうかをチェックします。このチェックが失敗するエッジ ケースがいくつかあります。まあ、私が自分の仕事について理解していることと、これまでに把握してきたコードベースに基づいて判断できる限り。
- (BOOL) syncInProgress {
return _serviceCounter > 0;
}
バグの説明の一番下にあるのは、単にイベントに応答するのではなく、状態のアプローチを取ることです。それが意味するかどうかはわかりません。