如何更新云套件数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更新云套件数据相关的知识,希望对你有一定的参考价值。

我有2种记录类型云套件数据库:

  1. 人名单
  2. 房间清单

占据了房间的人总是在变化。我有存储在引用的一个房间的人记录类型CKRecord.Reference。然而,这需要参考不断变化,因为人占据了房间不断变化。

我一直在挣扎,而无需创建一个新的记录更新基准。

我试图拉CKRecordCkRecords的阵列为人民,创建一个新的参考房间,我想那个人占据并保存此参考回到个人记录,然后保存这个用CKModifyRecordsOperation对象。

然而,这似乎是建立在我的数据库一个新的记录,而不是更新当前之一。

if providerAssignedRoom == nil 
    self.roomAssignmentDelegate?.assignRoom(roomID: self.selectedRoomCKRecID, provider: provider, completion: self.transitionBackToRoot) 

else 
    let newProvider = self.searchCKRecArrayForProviderRef(providerRecID, self.providersCKRecsArray)
    let reference = CKRecord.Reference(recordID: 
    self.selectedRoomCKRecID, action: .none) 
    newProvider[RecordTypes.providerEnum.assignedRoom] = reference
    let operation = CKModifyRecordsOperation(recordsToSave: [record, newProvider], recordIDsToDelete: nil)
    operation.completionBlock = 
        print("record reference assigned to nil")
    
    LaborFloorNamesDB.share.publicDatabase.add(operation)

答案

该解决方案是简单地增加一个保存政策。我正在这复杂得多,它需要是。

let providerToBeAssigned = self.providersArray[indexPath.item]
let providerToBeAssignedCKRef = self.findProviderCKRecordBasedOnProviderObject(provider: providerToBeAssigned)

var roomToBeReferenced: CKRecord 
    let object = self.roomsAsCKRecsArray.filter $0.recordID == self.selectedRoomCKRecID
    let value = object.first
    return value!


if self.providerToBeRemoved != nil 
    self.providerToBeRemoved![RecordTypes.providerEnum.assignedRoom] = nil


providerToBeAssignedCKRef![RecordTypes.providerEnum.assignedRoom] = CKRecord.Reference(record: roomToBeReferenced, action: .none)

let operation = CKModifyRecordsOperation(recordsToSave: [providerToBeAssignedCKRef!, self.providerToBeRemoved!], recordIDsToDelete: nil)
operation.savePolicy = .changedKeys
operation.completionBlock = 
    print("record reference updated to cloud")


LaborFloorNamesDB.share.publicDatabase.add(operation)

以上是关于如何更新云套件数据的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何选项可以导出所有云套件数据?

如何将JUnit 4测试添加到JUnit 3测试套件中

如何更新片段简历上的数据

Rails:旧数据与新数据不匹配时如何更新片段缓存

图标及其颜色会自动更新 | iOS |碳套件

云套件不会触发 NSUbiquityIdentityDidChangeNotification