-
[iOS] NSURLConnection이 deprecated되었기에 우리는..앱등이에게 살충제를 뿌린다./iOS 2016. 1. 26. 00:14
문제 상황
NSURLRequest를 통해서 리모트에 있는 파일을 다운로드 하고싶어요.
NSData *data에 담고싶은데 말이죠.. 코드는 아래와 같습니다.
아니 그런데
NSURLSession dataTaskwithrequest
"becausesendSynchronousRequest
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
'앱등이에게 살충제를 뿌린다. > iOS' 카테고리의 다른 글
weak property에 클래스 초기화구문을 대입하면 OOO. (안된다) (0) 2016.04.07 [NSHipster - iOS] 객체의 동등성 Equality 와 Identity에 대하여 (0) 2016.01.26 [NSHipster - iOS] Enumeration,Iteration,Traverse.. 반복문의 퍼포먼스에 대해 알아보자 (0) 2016.01.22 [iOS] Objective-C로 하는 비동기 처리 (0) 2016.01.20 [iOS] Block을 사용할 때 주의해야할 점 : 순환참조(RetainCycle)로 인한 Memory Leak (0) 2016.01.17