【发布时间】:2016-06-28 10:52:35
【问题描述】:
我在我的应用程序中使用 Alamofire 进行 API 调用。
现在我想在后台线程中调用一些 API,以便在调用该 API 时,其他功能正常工作。那么如何在 Alamofire 中做到这一点呢?
这就是我调用 APi 的方式
func GetDesignationList(pharmacyId : String,completion:(ManageDesignation : ManageDesignationListModel)-> Void) {
let url = "\(VendorURL)all_employee_designation_list"
let param : [String : AnyObject] = [
"pharmacyId" : pharmacyId
]
Alamofire.request(.GET, url, parameters: param, encoding: .URL).responseObject { (response:Response<ManageDesignationListModel, NSError>) in
switch response.result
{
case.Success(let value) :
var ManageDesignationObject : ManageDesignationListModel?
ManageDesignationObject = value
completion(ManageDesignation: ManageDesignationObject!)
case.Failure(let error) : break
}
}
}
【问题讨论】:
-
你可以使用 dispatch_queues。
-
Alamofire 本身将在后台线程中完成它的工作,这样您就不必在那里投入精力。在完成 alamofire 块时您想要执行的任何其他功能,您可以正常执行。如果您希望尽快获得 alamofire 结果,您将遇到问题,因为它是一个
Asynchronous进程,并且不会真正等待任何其他工作先完成。 -
ok @Dershowitz123 Alamofire 在后台线程中完成所有工作??
-
是的!这是一个
Asynchronous进程,它在后台线程上执行它的工作,确保您的 UI 不会冻结或减慢您的应用程序的整体速度。
标签: ios objective-c swift ios9 alamofire