【问题标题】:Modify data with CloudKit使用 CloudKit 修改数据
【发布时间】:2015-01-14 23:55:45
【问题描述】:

我想在 CloudKit 中修改数据。我发现了这个问题 (Saving Modified Data in CloudKit),它指向 CKModifyRecordsOperation,但对于这个问题,我正在寻找更多指导。我正在这样设置我的对象:

[object setValue:number forKey:@"total"];

如果我只修改一条记录而不是全部,我还调用 CKModifyRecordsOperation 吗? 关于如何完成的任何线索? 我一直在使用[self.cloudManager saveRecord:object];,但修改记录时这不起作用。

【问题讨论】:

    标签: ios save cloudkit ckrecord


    【解决方案1】:

    您可以获取、修改和保存对单个记录所做的更改。

    下面的代码 sn-p 展示了如何获取 Artwork 记录,更改日期属性值,并将其保存到数据库中。

    // Fetch the record from the database
    CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:containerIdentifier] publicCloudDatabase];
    CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"115"];
    [publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
       if (error) {
          // Error handling for failed fetch from public database
       }
       else {
          // Modify the record and save it to the database
          NSDate *date = artworkRecord[@"date"];
          artworkRecord[@"date"]; = [date dateByAddingTimeInterval:30.0 * 60.0];
          [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord *savedRecord, NSError *saveError) {
             // Error handling for failed save to public database
          }];
       }
    }];
    

    考虑阅读this article了解更多详细信息。

    【讨论】:

    • 您提到这适用于个人记录。我试图允许其他人修改其他人创建的数据,但获得“不允许写入权限......”。是否有专门的修改代码,或者是我在仪表板中调整的?
    • 您可以为每条记录在仪表盘上设置权限。如果只有创作者可以修改或任何人等等。
    猜你喜欢
    • 2014-08-21
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多