私は ReactiveCocoa を調査しており、何が可能かを確認しようとしています。私が抱えている問題は、いくつかのネットワーク リクエストを連鎖させることです。
最初に識別子のリストを取得し、次に各識別子に対して、その ID に対応するデータを取得するための呼び出しを行い、モデル オブジェクトを作成してオブジェクトの配列を返します。
AFNetworking の RACExtensions を使用してリクエストを作成しています。コードは次のようになります。
- (RACSignal *) identifersInfo
{
return [[[[self identifiersSignal] flattenMap:^RACStream *(RACTuple *tuple) {
RACTupleUnpack(AFHTTPRequestOperation *operation, id responseObject) = tuple;
NSArray *identifiers = responseObject[@"Identifiers"];
NSArray *requests = [self httpRequestsWithIdentifiers: identifiers];
return [self.client rac_enqueueBatchOfHTTPRequestOperationsWithRequests: requests];
}] collect] map:^id(RACTuple *tuple) {
RACTupleUnpack(AFHTTPRequestOperation *operation, id responseObject) = tuple;
Model *model = [[Model alloc] init];
model.title = responseObject[@"Title"];
model.description = responseObject[@"Description"];
model.lastUpdated = responseObject[@"LastUpdated"];
return model;
}];
}
identifiersSignal メソッドは次のようになります。
- (RACSignal *) identifiersSignal
{
return [self.client rac_getPath: @"identifiers" parameters: nil];
}
これは、次のような json 辞書を返します。
{
"Identifiers": [
3,
4,
21
]
}
私は現在、これらの呼び出しを実際に嘲笑しており、それらが独立して動作することを知っています.ReacticeCocoaを使用してそれらをつなぎ合わせようとしています.
ReactiveCocoa を使用してこれを達成する方法について、適切なサンプルを見つけたり見つけたりすることはできませんが、それが可能であると確信しています。