uiprogressview使用ASIFormDataRequest跳转到99%然后100%

时间:2011-09-24 03:45:27

标签: objective-c cocoa-touch file-upload uiprogressview

我正在尝试为图像上传实现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 个答案:

答案 0 :(得分:1)

跟踪Post操作总是会遇到此问题。数据上传,然后您的应用必须等待服务器已成功完成的响应。 ASIFormDataRequest知道数据的增量发送,因此它可以准确地跟踪此进度,直到发送最后一位数据。但是,它不能知道服务器响应多长时间以确认已成功接收整个上载(当调用didFinishSelector时)。您的上传速度很快,进度跟踪达到99%,然后达到99%,直到调用uploadImage,这表示它已完成,100%。