我有一个包含两种记录类型的云工具包数据库:
居住在房间里的人不断变化。我有一个CKRecord
。引用存储在引用一个房间的人员记录类型中。但是,此参考需要不断变化,因为占用房间的人不断变化。
我一直在努力尝试在不创建新记录的情况下更新参考。
我已尝试将CKRecord
从CkRecords
的数组中拉出,以供人们使用,创建一个新的对我希望该人居住的房间的引用,并将此引用保存回该人记录,然后使用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)
}
答案 0 :(得分:0)
解决方案只是添加一个保存策略。我使它变得比需要的复杂。
let a = [
[1,2],
[
[3,4]
],
[
[[5],[6]]
]
];
const flatten = arr => arr.reduce((a, v) => {
if (v instanceof Array) {
return a.concat(flatten(v))
} else {
a.push(v);
return a;
}
}, [])
console.log(flatten(a));