我是否需要在dispatch_async中包装我的Alamofire调用?

func authenticate(completion:(success: Bool) -> Void) { let qos = Int(QOS_CLASS_USER_INITIATED.value) dispatch_async(dispatch_get_global_queue(qos, 0)){ () -> Void in Alamofire.request(.POST, CONSTANTS.Domain+"/accounts", parameters: ["" : ""]).responseJSON { (req, res, json, error) in dispatch_async(dispatch_get_main_queue()){ completion(success: true) } } } } 

或者,我可以忽略调度并保持简单的代码吗?

Alamofire被devise为asynchronous的。 另一方面,如果方法有callback,很可能是asynchronous的。 所以,是的,你可以省去dispatch_async调用。