uiprogressview переходит на 99%, затем на 100%, используя ASIFormDataRequest - PullRequest
0 голосов
/ 24 сентября 2011

Я пытаюсь реализовать UIProgressView для загрузки изображения, поэтому я настроил его на

uploadProgress = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
[uploadProgress setFrame:CGRectMake(85, 19, 150, 9)];

imageRequest = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:@"http://theurl.com"]];
[imageRequest setDelegate:self];
[imageRequest setDidFinishSelector:@selector(uploadedImage:)];
[imageRequest setDidFailSelector:@selector(asiRequestFailed:)];
[imageRequest setTimeOutSeconds:60];
[imageRequest addData:imgData forKey:@"file"];
[imageRequest addPostValue:[parameters yajl_JSONString] forKey:@"json"];
[imageRequest setUploadProgressDelegate:uploadProgress];
[imageRequest setShowAccurateProgress:YES];
[imageRequest startAsynchronous];

Он загружается некоторое время, затем прыгает почти до 100%, затем достигает 100%, затем через пару секунд завершается. Что-то мне не хватает в моем коде, или мне нужно что-то делать на стороне сервера?

Спасибо

1 Ответ

1 голос
/ 24 сентября 2011

Отслеживание почтовой операции всегда будет иметь эту проблему. Данные загружаются, и тогда ваше приложение должно ждать ответа от вашего сервера, который был успешно завершен. ASIFormDataRequest знает об инкрементной отправке данных, поэтому он может точно отслеживать этот прогресс вплоть до отправки последнего бита данных. Однако он не может знать, сколько времени потребуется вашему серверу, чтобы ответить, чтобы подтвердить, что вся загрузка была успешно получена (когда вызывается ваш didFinishSelector). Ваша загрузка выполняется быстро, и прогресс отслеживается до 99%, а затем остается на уровне 99%, пока не будет вызван uploadImage, который сигнализирует о завершении, 100%.

...