CKSubscription 文档说:当记录修改导致订阅触发时,服务器会向所有具有该订阅的设备发送推送通知,但对记录进行原始更改的设备除外。
假设我有两个设备:设备 1 和 iPad 和设备 2 都使用相同的iCloud 帐户登录。让我们假设两个设备都订阅了某个记录类型的记录更新。
我的代码看起来像这样(我已经取出了一些家务)
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"fromUserRecordIDName == %@", _member.userRecordIDName];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"fromUserRecordIDName == %@", notificationPublic = [[CKNotificationInfo alloc] init];
notificationPublic.shouldBadge =YES;
notificationPublic.desiredKeys = @[@"fromMemberNameText"];
notificationPublic.shouldSendContentAvailable = YES;
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"TickleRecordUpdateSubscription"] == nil) {
[cloudManager subscribe:@"TickleRecord" public: YES options:CKSubscriptionOptionsFiresOnRecordUpdate predicate:predicate2 notification:notificationPublic completionHandler:^(CKSubscription *subscription, NSError *operationError) {
if (operationError) {
NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), operationError);
} else{
[[NSUserDefaults standardUserDefaults] setObject:subscription.subscriptionID forKey:@"TickleRecordUpdateSubscription"];
[[NSUserDefaults standardUserDefaults] setObject:@"TickleRecordUpdateSubscription"forKey:subscription.subscriptionID ];
}
}];
在我看来,当一台设备更新记录时,应该通知另一台设备。但这不是正在发生的事情 - 没有通知。在 WWDC 2014 Advanced iCloud 视频中,他们谈到当一台设备将通知标记为已读时会收到通知,但我也没有成功。
当登录到同一帐户的另一台设备更新记录时,是否有人成功通知了一台设备?