Uomo, perplesso su questo. Cercando di scaricare un file con AFNetworking e il meglio che posso fare è catturare i byte di avanzamento nel downloadProgressBlock. Ho provato molte diverse forcelle di AFNetworking e ora sono tornato all'ultima build. Sembra che contemporaneamente AFHTTPRequestOperation sia stato modificato per includere anche NSURLResponse, ma questo è andato nell'ultima versione. E, secondo il codice qui sotto, il blocco "successo" non viene mai chiamato. Ricevo un log dei byte scaricati e quindi viene chiamato^complete. il successo e l'errore non vengono mai chiamati.AFNetworking - Utilizzo di AFHTTPRequestOperation per scaricare il file?
Qualsiasi consiglio su questo sarebbe fantastico. Non riesco a capire dove vengono restituiti i dati e come farli utilizzare NSFileManager su di esso? Ho bisogno di scaricare file, non scrivere flussi per immagini, ecc.
Modifica: Ho anche provato a catturare i dati eseguendo l'override della connessione (void): didReceiveData come suggerito nella documentazione, ma niente da fare lì.
// url è http://mydomain.com/somezip.zip
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", url]]];
AFHTTPRequestOperation *operation = [AFHTTPRequestOperation HTTPRequestOperationWithRequest:request success:^(id object) {
NSLog(@"hey, some success!");
} failure:^(NSHTTPURLResponse *response, NSError *error) {
NSLog(@"%@", error);
}];
[operation setDownloadProgressBlock:^(NSInteger bytesRead, NSInteger totalBytesRead, NSInteger totalBytesExpectedToRead) {
// callback is sent in and works great. Just outputting to the console at the moment
SEL callme = NSSelectorFromString(callback);
[sender performSelectorOnMainThread:callme withObject:[NSNumber numberWithInt:bytesRead] waitUntilDone:NO];
}];
[operation setCompletionBlock:^{
NSLog(@"operation complete");
}];
NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];
Qualcuno dare quest'uomo un upvote! E OP dovrebbe selezionare la risposta! – radj