ios阻止等待完成

时间:2013-03-21 06:47:20

标签: objective-c-blocks

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

我找到了 dispatch_sync但不确定如何使用它。

1 个答案:

答案 0 :(得分: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];