Ho bisogno di incapsulare la risposta da AFNetworking chiamate all'interno del mio metodo mentre sto scrivendo una libreria. Questo codice mi si avvicina:Blocchi di interruzione riuscita riuscita da AFNetworking all'interno di un metodo
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];
}
Tuttavia, ho bisogno di elaborare i dati oggetto JSON restituiti da getPath prima di tornare a getDevices(). Ho provato questo:
- (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 ...
}];
}
ma ora non c'è nessuna chiamata di nuovo a getDevices(). Quindi, come si elabora l'oggetto json in getDevices & il completamento del blocco è completato? Apprezzo l'aiuto, visto che sono nuovo per i blocchi.
Grazie phix23! Aggiungendo "successo (myResults);" al blocco di successo getPath() fa funzionare tutto come previsto. Mille grazie per la risposta super veloce. - Dan – Dan
Apprezza anche i commenti di chiarezza. Ti sei concentrato sulla funzionalità, ma incorporerai questi suggerimenti nella versione finale. – Dan
Voglio questa funzione getDevices in swift. Puoi convertirla in swift –