ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] NSURLConnection이 deprecated되었기에 우리는..
    앱등이에게 살충제를 뿌린다./iOS 2016. 1. 26. 00:14

    문제 상황

    NSURLRequest를 통해서 리모트에 있는 파일을 다운로드 하고싶어요.

    NSData *data에 담고싶은데 말이죠.. 코드는 아래와 같습니다.

    아니 그런데 

     NSURLSession dataTaskwithrequest"because sendSynchronousRequest is deprecated in iOS 9

    라는 메시지가 뜨네요..

    어떻게 해야하죠?



    답변

    이제는 NSURLSession을 사용하셔야 합니다.


    Example(GET):

    이젠 이렇게 여러분의 URL과 API호출이 리턴될 때 실행 될 블락을 전달하는 방식으로 이 메소드를 사용하시면 됩니다.


    어떻게 사용을 하느냐!!

    블락 내부에 전달받은 NSData타입의 data와 NSURLResponse타입의 HTTP응답정보가 들어옵니다. 

    따라서 이 내부에 코드를 넣어주시면 되겠네요.



    NSURLSession과 NSURLConnection의 주요 차이점

    • NSURLConnection : NSURLConnection으로 네트워크 연결을 맺고 있다가 만약 시스템이 인터럽트를 걸었다고 가정합시다. 그러면 앱이 백그라운드로 가게 되고 앱에서 전송받고 있던 모든데이터가 날아가게 됩니다.

    • NSURLSession : 이러한 문제를 해결해주고 다운로드 작업자체에서 우리를 해방시켜줬습니다. NSURLSession은 네트워크연결을 알아서 관리해줍니다. 
      AppDelegate에서 application:handleEventsForBackgroundURLSession:completionHandler 메소드를 구현하셔서 백그라운드 다운로드도 직접 관리해줄 수 있습니다.
      **그러니까 NSURLSession을 사용하시면 네트워크 연결을 체크하실 필요가 없습니다. OS가 알아서 해주거든요.



    출처:http://stackoverflow.com/questions/32441229/nsurlconnection-deprecated-in-ios9

Designed by Tistory.