Mężczyzna, zakłopotany tym. Próbuję pobrać plik z numerem AFNetworking, a najlepsze, co mogę zrobić, to przechwycić bajty postępu w downloadProgressBlock. Wypróbowałem wiele różnych rozwidleń AFNetworking i teraz wracam do najnowszej wersji. Wygląda na to, że w tym samym czasie zmodyfikowano funkcję AFHTTPRequestOperation, aby uwzględnić także NSURLResponse, ale nie ma jej w najnowszej wersji. I, zgodnie z poniższym kodem, blok "sukcesu" nigdy nie jest wywoływany. Otrzymuję dziennik pobranych bajtów, a następnie wywoływana jest funkcja^complete. sukces i błąd nigdy nie są wywoływane.AFNetworking - Używanie AFHTTPRequestOperation do pobrania pliku?
Wszelkie wskazówki na ten temat będą niesamowite. Nie mogę dowiedzieć się, gdzie dane są zwracane i jak uzyskać go używać NSFileManager na nim? Muszę pobierać pliki, nie zapisywać strumieni obrazów itp.
Edytuj: Próbowałem też przechwytywać dane przez przesłonięcie - (void) connection: didReceiveData zgodnie z sugestią w dokumentacji, ale nic tam nie robię.
// url jest 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];
Ktoś dać temu człowiekowi o upvote! OP powinien wybrać odpowiedź! – radj