您好,我嘗試取消CloudKit上的訂閱。 到目前爲止,我已經通過publicDB?.deleteSubscriptionWithID嘗試了CKModifySubscriptionsOperation和single removement。我的completionHandler給了我沒有錯誤和一個已刪除訂閱ID的數組。所以一切似乎都沒問題。CloudKit:刪除CKSubscription不起作用
但是,當我改變記錄我仍然得到推送通知。 如何刪除訂閱?
這裏是改變的代碼:訂閱時 CloudKit Dashboard
我的日誌:
func cancelCubscription(subscription:Subscriptions){
self._animationDelegate?.beginAnimation()
var subs = [String]()
subs.append(subscription.daySubSignature!)
subs.append(subscription.hdpSubSignature!)
subs.append(subscription.noteSubSignature!)
subs.append(subscription.planerSubSignature!)
subs.append(subscription.subjectSubSugnature!)
subs.append(subscription.teacherSubSignature!)
subs.append(subscription.tldSubSignature!)
// Create a CKModifyRecordsOperation operation
let subscriptionOperation = CKModifySubscriptionsOperation(subscriptionsToSave: nil, subscriptionIDsToDelete: subs)
subscriptionOperation.modifySubscriptionsCompletionBlock = { (modifiedSubscriptions: [CKSubscription]?, deletedSubscriptionIDs: [String]?, error: NSError?) -> Void in
guard error==nil else {
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self._animationDelegate?.endAnimation()
print(error!.localizedDescription)
let title:String = "Alert_Cancel_CloudKit_Subscription_Error_Title".localized
let message:String = error!.localizedDescription
self._alertDelegate?.showAlert(title, message: message)
})
return
}
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self._animationDelegate?.endAnimation()
print("")
print("- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *")
print("Unscribe to CloudKit subscription success!")
let title:String = "Alert_Cancel_CloudKit_Subscription_Success_Title".localized
let message:String = "Alert_Cancel_CloudKit_Subscription_Success_Message".localized
self._alertDelegate?.showAlert(title, message: message)
for sub in deletedSubscriptionIDs!{
print("Deleted Subscription: \(sub)")
}
subscription.tldSubSignature = "null"
subscription.daySubSignature = "null"
subscription.hdpSubSignature = "null"
subscription.noteSubSignature = "null"
subscription.planerSubSignature = "null"
subscription.subjectSubSugnature = "null"
subscription.teacherSubSignature = "null"
subscription.subscribed = false
Subscriptions.editSubsripction(subscription, context: self.appDel.managedObjectContext)
})
}
// Add the operation to an operation queue to execute it
self._publicDB!.addOperation(subscriptionOperation)
}
我的租約仍然有效
- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
CloudKit subscription success
teacherSubSignature = DE49AAFB-373C-49E5-8DC8-E81A977E7628
subjectSubSugnature = 3F06E054-D1B9-441E-AED3-CA947820D90C
daySubSignature = 8FF9AC02-F177-4381-AA8D-08AFFDB0A578
hdpSubSignature = 811ABA9A-D31B-4661-B783-B5DF033FC5F4
tldSubSignature = 1C07C661-02A9-48F3-9B92-08F41433E179
planerSubSignature = 1C32F1F0-3647-4F57-BDEF-215A28F69039
hdpSubSignature = 59216B52-1A21-4666-950A-F8CDE44591D2
Subscription Edited in Core Data
和刪除訂閱: 誤差=零
- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Unscribe to CloudKit subscription success!
Deleted Subscription: 8FF9AC02-F177-4381-AA8D-08AFFDB0A578
Deleted Subscription: 59216B52-1A21-4666-950A-F8CDE44591D2
Deleted Subscription: 811ABA9A-D31B-4661-B783-B5DF033FC5F4
Deleted Subscription: 1C32F1F0-3647-4F57-BDEF-215A28F69039
Deleted Subscription: 3F06E054-D1B9-441E-AED3-CA947820D90C
Deleted Subscription: DE49AAFB-373C-49E5-8DC8-E81A977E7628
Deleted Subscription: 1C07C661-02A9-48F3-9B92-08F41433E179
Subscription Edited in Core Data
你是如何得到訂閱刪除?你有沒有檢查你有多少訂閱(重複)? – Wain
我沒有重複項,我的CloudKit儀表板只顯示正確的類型和數量。但仍然在刪除操作之後。 – SharpDev
您是否檢查並確認沒有待處理的通知?你確定,看到答案。 – user3069232