没有iCloud登录的CloudKit公共数据库读取

时间:2014-09-25 12:34:47

标签: ios iphone icloud cloudkit

在文档中,即使用户没有使用正确的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"]);

    }
}];

2 个答案:

答案 0 :(得分:7)

公共数据库只能在生产环境中进行登录,而不能在开发环境中登录。

Apple的文档说:

  

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

请参阅CloudKit Quick Start

答案 1 :(得分:3)

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

提交雷达