Potrzebuję enkapsulacji odpowiedzi z wywołania AFNetworking w mojej własnej metody podczas pisania biblioteki. Ten kod pobiera mi bliski:Blokowanie niepowodzenie bloki z AFNetworking w ramach metody
MyDevice *devices = [[MyDevice alloc] init];
[devices getDevices:@"devices.json?user_id=10" success:^(AFHTTPRequestOperation *operation, id responseObject) {
... can process json object here ...
}
- (void)getDevices:(NSString *)netPath success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure {
[[MyApiClient sharedDeviceServiceInstance] getPath:[NSString stringWithFormat:@"%@", netPath]
parameters:nil success:success failure:failure];
}
Jednak muszę przetwarzania danych obiekt JSON zwracane z getPath przed powrotem do getDevices(). Próbowałem to:
- (void)getDevices:(NSString *)netPath success:(void (^)(id myResults))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure {
[[MyApiClient sharedDeviceServiceInstance] getPath:[NSString stringWithFormat:@"%@", netPath]
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
... can process json object here ...
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
... process errors here ...
}];
}
Ale teraz nie ma połączenia z powrotem do getDevices(). Jak mogę przetworzyć obiekt Json w getDevices & po powrocie bloku po zakończeniu? Doceń pomoc, ponieważ jestem nowy w blokach.
Dziękuję phix23! Dodając "sukces (myResults);" do bloku sukcesu getPath() sprawia, że wszystko działa zgodnie z oczekiwaniami. Wielkie dzięki za super szybką odpowiedź. - Dan – Dan
Doceń również komentarze klarowności. Koncentruję się na funkcjonalności, ale uwzględnię te sugestie w ostatecznej wersji. – Dan
Chcę, aby funkcja getDevices była szybka. Możesz ją przekonwertować na szybką –