2016-06-02 2 views
0

현재 진행중인 불완전한 쿼리 작업을 취소 할 수 있습니까? 예를 들어, 사용자가 전자 메일 주소에 입력 한 다음 검색 단추를 누를 응용 프로그램이 있다고 가정 해 보겠습니다. 앱은 CKDatabase 안에 저장된 수많은 이메일 주소를 검색합니다. 앱이 사용자에게 "현재 검색 중 (이메일 주소 삽입)"과 같은 내용을 알려주는 UIView을 표시하고 검색어가 너무 오래 걸릴 경우를 대비해 취소 버튼을 제공 할 경우. 사용자가 취소 버튼을 누른 다음 일부 코드를 실행하여 CloudKit이 현재 수행중인 쿼리를 취소 할 수있는 방법이 있습니까?CloudKit 취소 진행중인 쿼리

내가 물어 보는 이유는 내가 현재 개발하고있는 iOS 앱과 비슷한 상황이 있기 때문입니다. 일반적으로 모든 것이 잘 작동하고 빠르지 만 잘못된 이메일 주소를 입력하고 취소해야한다는 것을 즉시 깨닫거나 iPhone 네트워크에서 셀 네트워크를 사용하여 테스트를 수행하면 쿼리에 Wi-Fi보다 훨씬 오래되었습니다.

이 방법이 있어야한다고 가정합니다. 답변을 제공하거나 올바른 방향으로 나를 가리킬 수있는 사람은 누구나 크게 환영합니다!

답변

3

CKQueryOperation을 사용 중이라고 가정하면 조작이 완료된 후 cancel으로 전화 할 수 있습니다. 그러면 CKErrorOperationCancelled 완료 블록에서 오류가 발생합니다.

+0

도 'CKFetchRecordsOperation'과 동일합니까? 내가'UIViewController'에서 참조하고있는'let fetch = CKFetchRecordsOperation (recordIDs : references)'와 비슷한 것을 가지고 있는데, 사용자가 취소를 요청하면'self.fetch.cancel()'로 갈 수 있을까요? 그리고 귀하의 빠른 응답에 감사드립니다! – Pierce

+1

예. 작동을 취소하는 기능은 모든 CloudKit 작업이 확장되는 'NSOperation'에서 비롯됩니다. – rmaddy

+0

완벽한! 방금 테스트했는데 잘 작동합니다. 고맙습니다! – Pierce