0

今日、職場で、開発中の iPad アプリケーション内のバグを修正するタスクを与えられました。この問題は、アプリと Web サービス間の同期に関する情報の更新が正しく表示されないこと、または同期すべきタイミングでアプリの不整合が発生し、UIButton に表示される情報が正しくないことに関連しています。更新されたデータやその他のメタ情報を取得するための Web サービスのクエリは、いくつかのサブクラス化された NSOperation クラスで発生します。何らかのイベントが終了したとき、または NSOperation サブクラスに含まれていないものが更新されると、NSOperationQueue のメイン キューにブロック付きの操作を追加することにより、通知センターを使用して通知が投稿されます。同期は、アプリが最初に読み込まれたときと 5 分ごとに行われます。アプリがバックグラウンドにあるときに 5 分マークが発生した場合、

受信トレイ ビュー コントローラーが割り当てられ、ビューが表示されると、UIButton は同期が進行中であることを示しませんが、ボタンをタップして同期を開始できます。ビューのインボックス ビュー コントローラーで、メソッドが表示されます。コードは、syncInProgress かどうかをチェックします。このチェックが失敗するエッジ ケースがいくつかあります。まあ、私が自分の仕事について理解していることと、これまでに把握してきたコードベースに基づいて判断できる限り。

- (BOOL) syncInProgress {
    return _serviceCounter > 0;
}

バグの説明の一番下にあるのは、単にイベントに応答するのではなく、状態のアプローチを取ることです。それが意味するかどうかはわかりません。

4

1 に答える 1

1

はい、非常に単純です。iOS は、要素の状態の変化をチェックする方法を提供します。これが発生すると、メソッド オブジェクトまたは何かに通知できます。

キー値のコーディング

KVO の主な利点は、プロパティが変更されるたびに通知を送信する独自​​のスキームを実装する必要がないことです。

これが意図したものでない場合は、遠慮なく指定してください。

于 2012-06-14T01:17:23.020 に答える