2016-06-02 5 views
0

Можно ли отменить операцию запроса CloudKit, которая в настоящее время выполняется и неполна? Например, скажем, у меня есть приложение, в котором пользователь вводит адрес электронной почты, а затем удаляет кнопку поиска. Затем приложение начнет поиск по многочисленным сохраненным адресам электронной почты внутри CKDatabase. Если приложение должно было представить UIView, который сообщил пользователю что-то вроде «В настоящее время ищет (вставить адрес электронной почты)», а также имел кнопку «Отмена», если запрос занял слишком много времени. Есть ли способ, которым я мог бы нажать эту кнопку отмены, а затем выполнить какой-то код, чтобы отменить запрос, который в настоящее время выполняет CloudKit?Отменить запрос CloudKit

Причина, по которой я спрашиваю, что у меня аналогичная ситуация с моим приложением iOS, которое я сейчас разрабатываю. Обычно все работает отлично и очень быстро, но были случаи, когда я сразу понял, что я набрал неправильный адрес электронной почты и должен был отменить, или когда я провел тесты с использованием моей сотовой сети на своем iPhone, запрос может принимать длиннее чем на wifi.

Я бы предположил, что должен быть способ сделать это, не так ли? Было бы очень благодарно всем, кто мог бы дать ответ, или указать мне в правильном направлении!

ответ

3

Предполагая, что вы используете CKQueryOperation, вы можете позвонить по телефону cancel, если у вас есть ссылка на него.

Затем вы должны правильно обработать полученную ошибку в блоке завершения.

+0

Это тоже то же самое, скажем, 'CKFetchRecordsOperation'? Представьте, что у меня есть что-то похожее: 'let fetch = CKFetchRecordsOperation (recordIDs: reference)', на который ссылается в 'UIViewController', а затем, когда пользователь просит отменить, я могу просто перейти' self.fetch.cancel() '? И спасибо за ваш быстрый ответ! – Pierce

+1

Да. Возможность отмены операции происходит из 'NSOperation', который распространяется на все операции CloudKit. – rmaddy

+0

Отлично! Я просто проверил его, и он отлично работает. Спасибо! – Pierce

Смежные вопросы