使用 CloudKit 修改数据
Posted
技术标签:
【中文标题】使用 CloudKit 修改数据【英文标题】:Modify data with CloudKit 【发布时间】:2015-01-14 23:55:45 【问题描述】:我想在 CloudKit 中修改数据。我发现了这个问题 (Saving Modified Data in CloudKit),它指向 CKModifyRecordsOperation,但对于这个问题,我正在寻找更多指导。我正在这样设置我的对象:
[object setValue:number forKey:@"total"];
如果我只修改一条记录而不是全部,我还调用 CKModifyRecordsOperation 吗?
关于如何完成的任何线索?
我一直在使用[self.cloudManager saveRecord:object];
,但修改记录时这不起作用。
【问题讨论】:
【参考方案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了解更多详细信息。
【讨论】:
您提到这适用于个人记录。我试图允许其他人修改其他人创建的数据,但获得“不允许写入权限......”。是否有专门的修改代码,或者是我在仪表板中调整的? 您可以为每条记录在仪表盘上设置权限。如果只有创作者可以修改或任何人等等。以上是关于使用 CloudKit 修改数据的主要内容,如果未能解决你的问题,请参考以下文章