2013-03-21 106 views
0

如何等待块执行完成?我对HTTP请求的上下文感兴趣,其中成功响应在块中执行。特别是在AFNetworking中发生这种情况。ios块等待完成

我发现了 dispatch_sync但不知道如何使用它。

回答

0

FSNetworking是我见过的最好的HTTP库。

FSNConnection支持块执行完成。

下面是一个例子

NSURL *url    = ...; // required 
NSDictionary *headers  = ...; // optional 
NSDictionary *parameters = ...; // optional 

FSNConnection *connection = 
[FSNConnection withUrl:url 
       method:FSNRequestMethodGET 
       headers:headers 
      parameters:parameters 
      parseBlock:^id(FSNConnection *c, NSError **error) { 
       return [c.responseData dictionaryFromJSONWithError:error]; 
      } 
     completionBlock:^(FSNConnection *c) { 
      NSLog(@"complete: %@\n error: %@\n parseResult: %@\n", c, c.error, c.parseResult); 
     } 
     progressBlock:^(FSNConnection *c) { 
      NSLog(@"progress: %@: %.2f/%.2f", c, c.uploadProgress, c.downloadProgress); 
     }]; 

[connection start];