5

サブスクリプションに関する情報がよくわかりません。私はプライベートデータベースを持っています。サブスクリプションを作成するテーブルがあります。1 つの iCloud アカウントで 2 つのデバイスをサブスクライブすると、エラーが発生します。

CKError 0x165c6ac0: "サーバーは要求を拒否しました" (15/2032); サーバー メッセージ = "サブスクリプションは 'C6051A24-2DB5-47EA-98D2-7D8786AA6D3B' と重複しています"; uuid = 48AC7472-006A-4FD7-84A9-DB342C83C199; コンテナー ID = "iCloud.com. *. *"

NSPredicate *truePredicate = [NSPredicate predicateWithValue:YES];
CKSubscription *itemSubscription = [[CKSubscription alloc] initWithRecordType:RecordType
                                                                    predicate:truePredicate
                                                                      options:CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordUpdate];


CKNotificationInfo *notification = [[CKNotificationInfo alloc] init];
notification.shouldSendContentAvailable = YES;

notification.alertLocalizationKey = @"";
notification.shouldBadge = NO;

itemSubscription.notificationInfo = notification;

[self.privateDatabase saveSubscription:itemSubscription completionHandler

多分私は何か間違ったことをしていますか?サブスクリプションの通知を両方のデバイスで受信するにはどうすればよいですか?

編集

また。サブスクリプションを 1 つだけ作成します。メソッド fetchAllSubscriptionsWithCompletionhandler を使用すると、テーブルごとに 3 ~ 4 のサブスクリプションが表示されます。でも1つしか作ってないから変。通知を受け取ると、必要以上の通知が表示されます。

4

1 に答える 1

6

サブスクリプションはデータベースごとです。したがって、データベースで複数のユーザーに通知を受け取りたい場合は、一度作成するだけで十分です。同じデータベースで同じサブスクリプション (同じサブスクリプション ID) を 2 回作成しているため、エラーが発生しています。一度だけ作成するようにしてください。サブスクリプションを取得して、それが既に作成されているかどうかを確認できます。ハリー

于 2015-05-14T07:49:05.330 に答える