AFNetworking을 사용하여 서버의 데이터를 요청합니다. 인터넷 연결이 안되면 데이터를받는 데 오랜 시간이 걸릴 수 있습니다. 따라서 기다릴 필요가 없으며 돌아 가기로 결정한 경우, 그것은 나를 허용하지 않을 것입니다 (UI 차단). 만약 내가 데이터가로드 될 때까지 기다리지 않으려면 돌아갈 수 있어야합니다. 다음은 AFNetworking UI 차단
내가 API 호출에 사용한 코드입니다 :class func performHTTPGetOnUrl(url: NSString , withParams dictionary: NSMutableDictionary? , withDelegate delegate:ConnectionManagerDelegate)
{
print("url is \(url) & params are \(dictionary)")
let manager = AFHTTPRequestOperationManager()
manager.requestSerializer = AFJSONRequestSerializer(writingOptions: []) //1
manager.responseSerializer = AFJSONResponseSerializer() //2
manager.responseSerializer.acceptableContentTypes = NSSet(objects: "application/json") as Set<NSObject>
manager.responseSerializer.acceptableContentTypes = NSSet(array: ["text/plain", "text/html", "application/json"]) as Set<NSObject>
//3
manager.GET(url as String,
parameters: dictionary,
success: {(operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
print("inside connectionManager success")
delegate.requestSucceededWithJsonResponse(responseObject!)
},
failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
print("inside failure block of get ")
delegate.requestFailedWithError(error!)
})
}
메인 대기열이 아닌 dispatch_async 대기열에서 실행하십시오. 완료 후 메인 큐의 데이터를 업데이트하십시오. –
이 코드는 이미 비동기입니다. 그것은 아무것도 막지 않을 것이다. – Paulw11
당신은 dispatch_async 큐 @sharad chauhan을 사용할 때 간단한 코드를 제공 할 수 있습니까? –