2015-02-06 112 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。