Ошибка CloudKit fetchRecordWithID: не удалось получить ресурс

Я пытаюсь получить запись с помощью CloudKit, и это не удается со следующей ошибкой: «Не удалось получить ресурс». Я подтвердил (через панель управления CloudKit), что запись существует в моей общедоступной базе данных, в зоне по умолчанию и в контейнере по умолчанию (не в настраиваемом контейнер). Вот мой код:

CKContainer *container = [CKContainer defaultContainer];
CKDatabase *publicDatabase = [container publicCloudDatabase];
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"1C0DCC08-71D3-4C47-A417-DB92D2EECB67"];
[publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
    if (error) {
        // Error handling for failed fetch from public database
    }
    else {
        // Display the fetched record
    }
}];

person bdelliott    schedule 06.02.2015    source источник
comment
это ошибка, которую вы получаете внутри завершенияHandler? или это фатальная ошибка? Каково полное сообщение об ошибке? Ошибка CloudKit обычно также возвращает код ошибки.   -  person Edwin Vermeer    schedule 07.02.2015
comment
Ошибка находится внутри завершенияHandler, ошибка CKErrorDomain - код: 4. Но для получения дополнительной информации вот скриншот ошибки в отладчике с расширенной ошибкой: Снимок экрана   -  person bdelliott    schedule 09.02.2015


Ответы (2)


Как вы можете видеть на скриншоте, код ошибки - 4, это сетевая ошибка.

См. Xcdoc: //? Url = developer.apple.com / library / ios / documentation / CloudKit / Reference / CloudKit_constants / index.html # // apple_ref / c / tdef / CKErrorCode.

Попробуйте переключиться на 3G или WiFi, чтобы увидеть, не изменилось ли поведение. Если вы зайдете в настройки своего приложения, включены ли мобильные данные? Можете ли вы запустить код из симулятора?

person Edwin Vermeer    schedule 09.02.2015
comment
Вот и все! Получение было частью использования уведомлений CloudKit. У меня есть приложение на двух устройствах - iPad и iPhone. Я сохраняю изображение в iCloud через CloudKit на iPad с поддержкой Wi-Fi и делаю выборку на своем iPhone. Вот где возникает вышеуказанная сетевая ошибка. Поэтому я переключил iPhone (сторона получения уведомлений) на использование моей мобильной сети вместо Wi-Fi, и теперь он работает! Спасибо, Эдвин! - person bdelliott; 12.02.2015

У меня был пользователь, который получил это, потому что он не вошел в iCloud в настройках своего iPhone.

person mxcl    schedule 08.04.2015