1

iOSプラットフォームでフィードリーダーをプログラミングしていて、jsonの結果を解析するときに、すべてのフィードを表すオブジェクトを含む配列を作成します。これらのオブジェクトは、NSTableViewまたはマップ(それらは情報を持っています)に連続してプッシュされます。フィードが位置情報を返さないことがありますが、場所のfoursquare Idを返すため、foursquareサーバーに接続して情報を取得する必要があります。これを行うには、Wathが最善の方法ですか?(配列内のすべてのフィードがいつ情報を取得したかを知りたいので、すべてをマップとテーブルビューにプッシュできます)

ありがとう

4

1 に答える 1

1

NSOperationQueueを作成し、サーバーから情報をフェッチする操作を追加してから、キューの「操作」キーパスを監視できます。operations.count == 0の場合、マップとテーブルビューにプッシュします。

編集

あなたはそれ自体をポーリングしていません-あなたはプロパティを観察し、変更の通知を受け取っています。

キューの操作プロパティのオブザーバーとして自分自身を追加します。

[self.runningQueue addObserver:self forKeyPath:@"operations" options:0 context:NULL];

次に、以下を実装します。

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
                     change:(NSDictionary *)change context:(void *)context
{
    if (object == self.runningQueue && [keyPath isEqualToString:@"operations"]) {
        if ([self.runningQueue.operations count] == 0) {
            // push to table view and map view
        }
    }
    else {
        [super observeValueForKeyPath:keyPath ofObject:object 
                           change:change context:context];
    }
}

このスレッドを参照してください。

于 2012-04-23T14:50:25.390 に答える