Swift - NSURLSession 을 사용 하여 데 이 터 를 동기 화 합 니 다 (신 호 량 추가 로)

2580 단어 ios데이터swift
원문 은 www. hangge. com 에서 전재 되 었 습 니 다. 원본 링크 를 유지 하 십시오.http://www.hangge.com/blog/cache/detail_816. html 과거 NSURLConnection. sendsynchronousRequest () 방법 을 통 해 요청 데 이 터 를 동기 화 할 수 있 었 습 니 다.iOS 9 부터 애플 은 NSURLConnection 을 폐지 하고 NSURLConnection 대신 NSURLSession 을 사용 할 것 을 권고 했다.NSURLSession 도 데이터 가 져 와 야 다음 코드 를 계속 실행 할 수 있 도록 동기 화 요청 을 할 수 있다 면 신호, 신 호 량 을 사용 하면 가능 합 니 다.샘플 은 다음 과 같다.
//  NSURL  
let urlString:String="http://www.hangge.com"
let url:NSURL! = NSURL(string:urlString)
//      
let request:NSURLRequest = NSURLRequest(URL: url)

let session = NSURLSession.sharedSession()

let semaphore = dispatch_semaphore_create(0)

let dataTask = session.dataTaskWithRequest(request,
    completionHandler: {(data, response, error) -> Void in
        if error != nil{
            print(error?.code)
            print(error?.description)
        }else{
            let str = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print(str)
        }

        dispatch_semaphore_signal(semaphore)
}) as NSURLSessionTask

//  resume      
dataTask.resume()

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)
print("      !")
//        .......

좋은 웹페이지 즐겨찾기