Я читал о внедрении пользовательского отслеживания прогресса в моем приложении, используя ASIHTTPRequest в documentation. В нем упоминается реализация 2 метода, request:didReceiveBytes:
и request:incrementDownloadSizeBy:
. Я добавил их в контроллер просмотра, но они не вызываются. Я просто пытаюсь получить пример кода, работающего на этом этапе.ASIHTTPRequest Custom Progress Tracking
// ViewController.m
- (void)fetchThisURLFiveTimes:(NSURL *)url
{
[myQueue cancelAllOperations];
[myQueue setDownloadProgressDelegate:self];
[myQueue setDelegate:self];
[myQueue setRequestDidFinishSelector:@selector(queueComplete:)];
int i;
for (i=0; i<5; i++) {
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.showAccurateProgress = YES;
[myQueue addOperation:request];
}
myQueue.showAccurateProgress = YES;
[myQueue go];
}
- (void)queueComplete:(ASINetworkQueue *)queue
{
NSLog(@"Value: %f", [myProgressIndicator progress]);
}
- (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes
{
NSLog(@"bytes: %lld", bytes);
}
- (void)request:(ASIHTTPRequest *)request incrementDownloadSizeBy:(long long)newLength
{
NSLog(@"newLength: %lld", newLength);
}
Что я здесь делаю неправильно?
Я считаю, что ошибка возникает, потому что вы смешиваете делегатов очереди с ASIHTTPRequest! Методы, о которых вы упомянули, должны работать только с ASIHTTPRequest! Проверьте этот раздел на странице поддержки ASI «Об ASINetworkQueues» – Mateus
Вы говорите, что эти методы могут использоваться только с ASIHTTPRequest, а не с ASINetworkQueue? ASINetworkQueue содержит несколько объектов ASIHTTPRequest, поэтому я думаю, что он должен работать. –