2016-12-06 18 views
0

我在Cloudkit兩種類型:服務目標和它對應的實體:ServiceGoal在coredata模型。我可以創建,更新或刪除它們。問題是關於刪除。如何基於CKQueryNotification知道要刪除的實體?

我使用CloudKit獲取待定通知。我可以根據queryNotificationReason屬性確定它的操作類型。如果是刪除,則無法確定應使用相關ID從我的核心數據數據庫中刪除哪種財產。

任何方式如何做到這一點?到目前爲止,我做到了像這樣的recordId我從CKQueryNotification得到:

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) 
     } 
    }) 
} 
+0

你需要澄清你的問題。它含糊不清。 – rmaddy

+0

我確實更新了這個問題...... –

回答

1

爲刪除查詢通知只給你一個CKRecordID。這意味着記錄ID必須包含處理刪除所需的所有信息。

我通過創建包含記錄類型和密鑰的記錄ID來解決此問題。然後在需要時,我可以將記錄標識的記錄名稱分解爲實體名稱和密鑰,並根據需要使用這些值。

+0

這可能會起作用;) –