Ich verwende PromiseKit und möchte den sequentiellen Download von JSONs erzwingen. Die Anzahl der JSONs könnte sich ändern.Verwenden von PromiseKit, um sequentiellen Download zu erzwingen
Ich habe this über Verkettung gelesen. Wenn ich eine feste Anzahl von sagen 3 Downloads hätte, wäre das in Ordnung.
Aber was wäre, wenn ich eine wechselnde Anzahl von Downloads hätte, die ich nacheinander herunterladen möchte?
Dies ist mein Code für 2 URLs. Ich frage mich, wie ich das mit dateUrlArray[i]
Iteration über das Array tun könnte?
- (void)downloadJSONWithPromiseKitDateArray:(NSMutableArray *)dateUrlArray {
[self.operationManager GET:dateUrlArray[0]
parameters:nil]
.then(^(id responseObject, AFHTTPRequestOperation *operation) {
NSDictionary *resultDictionary = (NSDictionary *) responseObject;
Menu *menu = [JsonMapper mapMenuFromDictionary:resultDictionary];
if (menu) {
[[DataAccess instance] addMenuToRealm:menu];
}
return [self.operationManager GET:dateUrlArray[1]
parameters:nil];
}).then(^(id responseObject, AFHTTPRequestOperation *operation) {
NSDictionary *resultDictionary = (NSDictionary *) responseObject;
Menu *menu = [JsonMapper mapMenuFromDictionary:resultDictionary];
if (menu) {
[[DataAccess instance] addMenuToRealm:menu];
}
})
.catch(^(NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[self handleCatchwithError:error];
});
}).finally(^{
dispatch_async(dispatch_get_main_queue(), ^{
DDLogInfo(@".....finally");
});
});
}
Vielen vielen Dank für das 'rostige' ObjC ;-) Tolle Antwort und IMHO eine Unterlassung auf der Promisekit-Site. Ich habe einen kleinen Schnitt gemacht (p sollte vom Typ PMKPromise sein). – brainray