2012-12-07 86 views
0

我正在異步運行AFNetworking。見下面的代碼。AFNetworking同步運行

我想同步運行它做一個軟件包下載(我需要獲得人們可以選擇的服務列表)。我怎樣才能做到這一點?

謝謝。

NSMutableURLRequest *apiRequest = 
[self multipartFormRequestWithMethod:@"POST" 
           path: pathstr 
          parameters: params 
      constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) 
      { 
       //TODO: attach file if needed 
      }]; 

AFJSONRequestOperation* operation = [[AFJSONRequestOperation alloc] initWithRequest: apiRequest]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    //success! 
    completionBlock(responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    //failure :(

    NSLog(@"%@", error); 
    completionBlock([NSDictionary dictionaryWithObject:[error localizedDescription] forKey:@"error"]); 
}]; 

[operation start]; 
+1

看看AFNetworking的創造者Mattt的這篇文章。 http://stackoverflow.com/questions/7969865/can-afnetworking-return-data-synchronously-inside-a-block/7970037#7970037 –

回答

1

我要運行它同步做一個打包下載(我需要得到服務,人們將可以從選擇的列表)。我怎樣才能做到這一點?

AFNetworking不支持同步操作。

另一方面,您幾乎從不想在您的UI線程上進行同步操作,因爲UI將變得無法響應。

(我需要得到服務列表,人們將可以從選擇)

你可以做的是顯示一些UI提示,服務列表被下載,而異步操作正在進行中。