我在 Cloudkit 中有两种记录类型:Service 和 Goal,它对应于实体:Service
和 Goal
在核心数据模型中。我可以创建、更新或删除它们。问题是关于删除。
我使用 CloudKit 获取待处理的通知。我可以根据 queryNotificationReason
属性确定它是哪种操作。如果是删除,则无法确定我应该从具有相关 ID 的核心数据数据库中删除哪种属性。
有什么办法吗?到目前为止,对于从 CKQueryNotification
获得的 recordID,我是这样做的:
class func delete(with recordID: CKRecordID) {
MagicalRecord.save({ context in
if let service = Service.find(withIdentifier: recordID.recordName, in: context) {
service.mr_deleteEntity(in: context)
} else if let goal = Goal.find(withIdentifier: recordID.recordName, in: context) {
goal.mr_deleteEntity(in: context)
}
})
}
最佳答案
删除查询通知只给你一个CKRecordID
。这意味着记录 ID 必须包含处理删除所需的所有信息。
我通过创建包含记录类型和键的记录 ID 来解决这个问题。然后在需要时,我可以将记录 ID 的 recordName 拆分为实体名称和键,并根据需要使用这些值。
关于ios - 我怎么知道要根据 CKQueryNotification 删除哪个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996718/