Ich möchte AFNetworking
Anfragen konsequent in einer Warteschlange senden. Ich erstelle eine rekursive Funktion, wie unten für dieses Ziel:rekursive Funktion get "Variable ist nicht zuweisbar (fehlende __Block Typspezifizierer) Fehler"
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"Start ...");
[self sentTest:0];
}
- (void) sentTest:(int)i{
if(i >= 10)
{
NSLog(@"Finished");
return;
}
NSLog(@"sending message %d ...", i);
NSMutableDictionary *params = [@{@"param1": @"value1",
@"param2": @"value2",
} mutableCopy];
NSString *webServiceUrl = @"MY_REST_SERVICE_URL";
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] init];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:webServiceUrl parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"message sent successful %d", i);
// Now call the method again
[self sentTest:i++];
return;
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"message sent failure %d", i);
return;
}];
}
ich diesen Fehler:
Variable is not assignable (missing __block type specifier) error"
Ich weiß, dass ich Blocktyp definieren müssen, aber ich weiß nicht, wie es zu benutzen in dieser rekursiven Funktion.
OK können wir mit 'Manager' beginnen. Das wird zerstört, wenn die Methode endet, ja? Wie wird es dann überhaupt etwas schaffen? – trojanfoe
@trojanfoe Es gibt kein Problem in der zerstörten Manager, ich möchte nur diese Methode erneut aufrufen, so dass ich neue Anfrage direkt nach der letzten Anfrage starten konnte. Ja, es ist nicht die beste Lösung, aber es könnte das Problem lösen. Ich versuche auch andere Lösungen, aber sie funktionieren überhaupt nicht: http://stackoverflow.com/questions/37297033/queue-of-afnetworking-requests-with-dispatch-group-t –