2014-09-26 103 views
3

那麼根據蘋果的文檔CloudKit查詢,用戶無法登錄到iCloud中仍然允許從公共數據庫讀取,但查詢公共數據庫時,我收到以下錯誤:用於註銷用戶

錯誤域= NSCocoaErrorDomain代碼= 4097「操作無法完成(可可錯誤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

當您的應用程序無法與cloudd CloudKit守護進程交談時返回錯誤4097。

這可能是由於授權問題或cloudd中的錯誤。檢查您的系統日誌以獲取更多線索,並從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)