2015-02-06 111 views
0

我試圖使用CloudKit獲取記錄,並且失敗,並顯示以下錯誤:「提取資產失敗」我確認(通過CloudKit Dashboard)該記錄存在於我的公共數據庫中和默認區域和默認容器(不是自定義容器)。這裏是我的代碼:CloudKit fetchRecordWithID錯誤:「提取資產失敗」

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 
    } 
}]; 
+0

是你在completionHandler裏面得到的錯誤嗎?或者它是致命的錯誤?什麼是完整的錯誤信息?一個CloudKit錯誤通常也會返回一個錯誤代碼。 – 2015-02-07 10:13:30

+0

錯誤在completionHandler中,錯誤是CKErrorDomain - 代碼:4。但是對於更多信息,下面是調試器中錯誤的錯誤屏幕截圖,其中擴展了錯誤:[Screen Shot](http://screencast.com/t/YB7e9i6IzpF) – bdelliott 2015-02-09 16:51:54

回答

0

正如你可以在截圖中看到錯誤代碼是4,它是一個網絡錯誤

見xcdoc:// URL = developer.apple.com /庫/ IOS /documentation/CloudKit/Reference/CloudKit_constants/index.html#//apple_ref/c/tdef/CKErrorCode

嘗試切換到3G或WiFi,看看是否有不同的行爲。 如果您轉到應用程序設置,是否啓用移動數據? 你可以從模擬器運行代碼嗎?

+1

這樣做了!獲取是使用CloudKit通知的一部分。我在兩臺設備上安裝了應用 - iPad和iPhone。我通過啓用Wi-Fi的iPad上的CloudKit將圖像保存到iCloud,然後在我的iPhone上執行抓取。這是上述網絡錯誤發生的地方。所以我把iPhone(通知接收方)切換到使用我的地窖網絡而不是Wi-Fi,現在它就可以工作了!謝謝Edwin! – bdelliott 2015-02-12 18:51:57

2

我有一個用戶得到這個,因爲他們沒有在他們的iPhone設置中登錄到iCloud。