A O*_*A O 3 apple-push-notifications ios cloudkit
我希望有一位经验丰富的CloudKit大师,但根据我的谷歌搜索查询,我不确定你是否存在.我认为这可能是Apple的一个错误,但我无法确定:
我可以保存订阅我的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"];
}
}];
Run Code Online (Sandbox Code Playgroud)
每当我更改记录中的字段时,我都会收到推送通知,一切都很愉快.
我的问题是删除此订阅.
我试过调用
正如你在上面的代码片段中看到的那样,我保存了订阅ID(还通过调用确认它是正确的订阅ID)-deleteSubscriptionWithID:completionHandler:-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);
}
}];
Run Code Online (Sandbox Code Playgroud)
无论我作为subscriptionID传递什么,都没有错误,我在"删除"时看到"SUCCESS".
...是的.显然这是行不通的.
如果我通过Cloudkit Dashboard手动删除订阅,我的-fetch调用会正确地注意到并返回一个空数组:

所以在这一点上,我确定我要么在代码中错误地删除订阅,要么它已经坏了,并且(不太可能)没有人在SO或任何其他论坛上找到我能找到的?
我也试过用 CKModifySubscriptionsOperation
CKModifySubscriptionsOperation *deleteSub = [[CKModifySubscriptionsOperation alloc] initWithSubscriptionsToSave:nil subscriptionIDsToDelete:@[[[NSUserDefaults standardUserDefaults] objectForKey:@"SUBSCRIPTION"]]];
[publicDatabase addOperation:deleteSub];
Run Code Online (Sandbox Code Playgroud)
没有结果 :(
我使用database.deleteSubscriptionWithID函数删除订阅.
如果你想确保ID是正确的,你也可以先使用它来获取所有ID database.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in
然后在完成处理程序中使用以下命令检查它是否是有效订阅: if let subscription: CKSubscription = subscriptionObject
然后删除一个或多个使用: database.deleteSubscriptionWithID(subscription.subscriptionID, completionHandler: {subscriptionId, error in
在这里你可以看到我删除所有订阅的代码:https: //github.com/evermeer/EVCloudKitDao/blob/1bfa936cb46c5a2ca75f080d90a3c02e925b7e56/AppMessage/AppMessage/CloudKit/EVCloudKitDao.swift#L897-897
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |