2014-09-26 2 views
3

Так, согласно документации Apple, пользователям не вошли в ICloud все еще разрешены читать из публичных баз данных, но при запросе общественности базы данных, я получаю следующее сообщение об ошибке:CloudKit Запросы для зарегистрированных пользователей из пользователей

Error Domain = NSCocoaErrorDomain Код = 4097 «Операция не может быть выполнена (ошибка Cocoa 4097.)» (подключение к службе с именем com.apple.cloudd) UserInfo = 0x7c3498c0 {NSDebugDescription = подключение к службе с именем com.apple.cloudd}

Вот мой код для справки:

let container = CKContainer.defaultContainer() 
let database = container.publicCloudDatabase 

let predicate = NSPredicate(value: true) 
let episodeQuery = CKQuery(recordType: "Episode", predicate: predicate) 
database.performQuery(episodeQuery, inZoneWithID: nil) { 
    // Record handling goes here 
} 

Любые мысли, советы или советы, безусловно, оценены. Большое спасибо

ответ

1

Ошибка 4097 возвращается, когда ваше приложение не может разговаривать с cloudd, демоном CloudKit.

Это может быть связано с проблемой с правами или ошибкой в ​​cloudd. Проверьте свой syslog для получения дополнительных подсказок и найдите журналы сбоев из cloudd. Если у вас есть журнал сбоев для cloudd пожалуйста, приложите его к новой РЛС на bugreport.apple.com

0

У меня была аналогичная проблема - после проверки системного журнала, как предложено @farktronix, после фильтрации cloudd я видел:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unexpected expression: NSSelfExpression' 

Оказывается, мой предикат запроса неверен - в моей подписной запросе, я пытался использовать предикат:

NSPredicate(format: "self = %@", someCKRecord) 

тогда я использую

NSPredicate(format: "recordID = %@", someCKRecord.recordID) 
Смежные вопросы