2016-10-26 7 views
0

지연 후 서버에 요청을 보내고 싶지만 사용자가 UITextFiled 상태를 변경 한 경우이 요청을 종료해야합니다. 내가 지금 가지고있는 것은GCD 종료 요청

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { 
    sessionManager.session.invalidateAndCancel() 
    APIModel().searchRequest()... 
} 

이지만 실제로 서버에 점점에서 요청을 중지하지 않습니다. 나는 GDCdelay을 사용하여 요청을 보내기 전에 잠깐 기다렸다가 UITextField이 변경되면 종료해야한다고 생각합니다. 그러나 나는이 논리 실현의 예를 찾을 수 없었다.

답변

1

요청을 "종료"할 수 없습니다.

"취소됨"속성을 사용하여 개체를 만들 수 있습니다. 그런 다음 해당 객체에 액세스하는 코드를 전달하고 적절한 시간에 "cancelled"속성이 true인지 확인합니다. 그리고 바깥에서, 당신이 그럴 때 기분이 상실 될 것입니다.

작업이 완료되어 취소 된 것을 감지하면 오류 메시지가 생성되지 않고 취소 된 이후로 다른 작업을 수행하지 않아야합니다.

+0

아이디어를 얻었습니다. 감사합니다. – JuicyFruit