我希望有一個經驗豐富的CloudKit專家,但基於我的谷歌搜索查詢,我不知道你是否存在。我認爲這可能是蘋果的一個bug,但我不能確定:\似乎無法刪除CloudKit中的訂閱? `-deleteSubscriptionWithID`總是返回true
我可以保存訂閱我的CKDatabase
罰款,沒有問題。
[publicDatabase saveSubscription:subscription completionHandler:^(CKSubscription *subscription, NSError *error) {
if (error)
{
//No big deal, don't do anything.
}
else
{
[[NSUserDefaults standardUserDefaults] setObject:[subscription subscriptionID] forKey:@"SUBSCRIPTION"];
}
}];
每當我在記錄中更改字段時,我都會收到推送通知,並且一切都很開心。
我的問題是刪除此訂閱。
我已經打過電話-deleteSubscriptionWithID:completionHandler:
正如你可以在上面的代碼片斷看,我救離訂閱ID(也證實它是正確的訂閱ID通過調用-fetchAllSubscriptionsWithCompletionHandler:
我通過subscriptionID在該消息,就像這樣:
[publicDatabase deleteSubscriptionWithID:[[NSUserDefaults standardUserDefaults] objectForKey:@"SUBSCRIPTION"] completionHandler:^(NSString * _Nullable subscriptionID, NSError * _Nullable error) {
if(error) {
NSLog(@"ERROR: %@", [error description]);
}
else
{
NSLog(@"SUCCESS: %@", subscriptionID);
}
}];
無論我作爲subscriptionID傳遞什麼,都沒有錯誤,並且在「刪除」時看到「SUCCESS」。
...這樣啊。顯然這不會起作用。
如果我手動刪除通過Cloudkit儀表盤認購,我-fetch
調用適當注意到並返回一個空數組:在這一點上
所以我敢肯定,我要麼不正確地刪除訂閱在代碼中,或者它已經壞了,(不太可能)沒有人在SO或我可以找到的任何其他論壇上提出要求?
我也使用CKModifySubscriptionsOperation
CKModifySubscriptionsOperation *deleteSub = [[CKModifySubscriptionsOperation alloc] initWithSubscriptionsToSave:nil subscriptionIDsToDelete:@[[[NSUserDefaults standardUserDefaults] objectForKey:@"SUBSCRIPTION"]]];
[publicDatabase addOperation:deleteSub];
沒有結果:(