我正在使用Cloud Kit开发一个iOS应用程序。基本上,当删除CKRecord时,首先创建该CKRecord的人应该收到通知。为了实现这一点,我正在创建一个订阅。一切似乎都按照预期工作,但是似乎每当您创建记录时,实际上您就订阅了所有记录。然后,无论谁创建了记录,您都会收到通知。我认为我可能会在NSPredicate方面出错,也许有人可以帮忙吗?以下是相关代码:
现在我明白,recordId属性名称实际上应该是类似recordID.recordName之类的东西,但我也尝试了这个方法,但它没有起作用。我仍然得到相同的结果。我不知道最好的方法是什么,但基本上我想要的是当CKRecord被删除时,订阅只会触发对CKRecord创建者。
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属性名称实际上应该是类似recordID.recordName之类的东西,但我也尝试了这个方法,但它没有起作用。我仍然得到相同的结果。我不知道最好的方法是什么,但基本上我想要的是当CKRecord被删除时,订阅只会触发对CKRecord创建者。
请注意,首先我创建
CKRecord
,然后将其上传到CloudKit。然后在回调方法中,我进行订阅并执行上述代码。