16

在文件中,它说即使用户没有使用正确的 iCloud 帐户登录,CloudKit 公共数据库也可以读取。但是,如果我没有将我的 iOS 模拟器或设备连接到 iCloud,我将无法从我的云数据库中获取任何内容。当我激活我的 iCloud 帐户时,我可以从我的公共数据库中获取数据。如果任何对我有答案或相同问题的人都可以回答,那就太好了。谢谢。

CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:@"mycontainer"] publicCloudDatabase];
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"idofmyrecord"] ;

[publicDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *fetchedRecord, NSError *error) {
    if(!error){
        NSLog(@"****Success***** %@",fetchedRecord[@"field1"]);

    }else{
        NSLog(@"****Failed***** %@",fetchedRecord[@"field2"]);

    }
}];
4

2 回答 2

10

公共数据库只能在生产环境不登录才能读取,不能在开发环境中读取。

苹果的文档说:

在开发中,当您通过 Xcode 在模拟器或设备上运行您的应用程序时,您需要输入 iCloud 凭据才能读取公共数据库中的记录。在生产中,默认权限允许未经身份验证的用户读取公共数据库中的记录,但不允许他们写入记录。

请参阅CloudKit 快速入门

于 2016-08-02T00:56:52.670 回答
3

我认为文档不正确,或者这是 Apple 代码中的错误。您应该在https://developer.apple.com/bug-reporting/提交雷达文件

于 2014-10-22T17:54:07.190 回答