Ios 使用ASIHTTPRequest跟踪进度
我试图与web服务通信并检索数据,同时,我尝试使用UIProgressView指示进度,以便用户知道发生了什么,但是,当我运行时,我在UIProgressView上看不到进度。 这是我的相关代码:Ios 使用ASIHTTPRequest跟踪进度,ios,asihttprequest,Ios,Asihttprequest,我试图与web服务通信并检索数据,同时,我尝试使用UIProgressView指示进度,以便用户知道发生了什么,但是,当我运行时,我在UIProgressView上看不到进度。 这是我的相关代码: - (void)viewDidLoad { [super viewDidLoad]; //start request NSURL *url=[NSURL URLWithString:@"http://iphone01.mtdgroup/admin_V01/stationsPro
- (void)viewDidLoad {
[super viewDidLoad];
//start request
NSURL *url=[NSURL URLWithString:@"http://iphone01.mtdgroup/admin_V01/stationsProcessing/pickers_management.php"];
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
[request setDelegate:self];
[request setUploadProgressDelegate:loadingProgress];
[request startAsynchronous];
NSLog(@"value: %f",[loadingProgress progress]);
}
日志显示:值:0.000000
。
根据ASIHTTPRequest文档,将UIProgressView
设置为uploadProgressDelegate
的委托就足够了,ASIHTTPRequest将负责为我更新UIProgressView。
我错过什么了吗?thx for advance:)您正在执行一个异步请求,因此NSLog在请求启动后立即执行,此时进度实际上为零-StartSynchronous在后台实际使用NSOperationQueue,因此如果您希望NSLog进度,您需要为自己的代理编写代码: 只需在视图控制器中包含以下内容:
- (void)setProgress:(float)newProgress {
[loadingProgress setProgress:newProgress];
NSLog(@"value: %f",[loadingProgress progress]);
}
并设置:
[request setUploadProgressDelegate:self];
您正在执行一个异步请求,因此NSLog在请求启动后立即执行,此时进度实际上为零-startAsynchronous在后台实际使用NSOperationQueue,因此如果您希望NSLog进度,您需要为自己的代理编写代码: 只需在视图控制器中包含以下内容:
- (void)setProgress:(float)newProgress {
[loadingProgress setProgress:newProgress];
NSLog(@"value: %f",[loadingProgress progress]);
}
并设置:
[request setUploadProgressDelegate:self];
确保您的类也符合
ASIProgressDelegate
协议
@interface YourClass : ... <ASIHTTPRequestDelegate,ASIProgressDelegate>
@接口YourClass:。。。
确保您的类也符合ASIProgressDelegate
协议
@interface YourClass : ... <ASIHTTPRequestDelegate,ASIProgressDelegate>
@接口YourClass:。。。
当调用此方法时,是否会在进度更新时自动调用此方法。顺便说一句,您应该真正连接(void)requestFailed:(ASIHTTPRequest*)请求委托方法,以便在异步启动后查看请求是否有错误。您好,这不起作用,在日志中总是相同的值0.000000
我必须提到,我使用requestFailed
和requestFinished
方法来管理请求:)当调用此方法时,是否会自动调用?当进度更新时。顺便说一句,您应该真正连接(void)requestFailed:(ASIHTTPRequest*)请求委托方法,以便在异步启动后查看请求是否有错误。您好,这不起作用,在日志中始终使用相同的值0.000000
我必须提到我使用requestFailed
和requestFinished
方法来管理请求:)