我有一个正在使用 Cloud Kit 开发的 iOS 应用程序。基本上发生的情况是,当 CKRecord 被删除时,首先创建 CKRecord 的人应该会收到通知。为此,我正在创建订阅。
一切似乎都按应有的方式工作,除了似乎每当您创建记录时,您实际上是在订阅所有记录。那么谁创建了记录并不重要,因为您会收到通知。我想我弄错了 NSPredicate,也许有人可以帮忙?这是我拥有的相关代码:
NSString *attributeName = @"recordID";
NSString *attributeValue = newRecord.recordID.recordName;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ like %@", attributeName, attributeValue];
CKSubscription *subscription = [[CKSubscription alloc] initWithRecordType:@"Photo" predicate:predicate options:CKSubscriptionOptionsFiresOnRecordDeletion];
现在我知道recordId 的attributeName 实际上应该是recordID.recordName 之类的东西,但我也试过了,但没有用。我仍然得到相同的结果。我不知道执行此操作的最佳方法,但基本上我想要的是在删除该记录时仅向 CKRecord 的创建者订阅。
请注意,首先我创建了
CKRecord
,然后将其上传到 CloudKit。然后在回调方法中,我订阅并执行上面的代码。