Tag: ckfetchrecordchangesopera

UPDATE通知的替代方法无效

更新通知停止工作。 你有什么解决方法,直到苹果计算出什么东西? CKFetchNotificationChangesOperation有时不会返回UPDATE,DELETE通知 CloudKit推送通知logging更新停止工作 https://forums.developer.apple.com/thread/7288 我的快速修复,在每一分钟,当用户触发UIRefreshControl ,然后我下载自上次更新后修改的所有logging。 有用。 但是,我有一个更好的主意,好奇,你怎么看。 任何缺点。 我想添加一个Change表到数据库。 它将有一个recordName , recordType , changeType字段。 changeType可以insert , update , deletestring值。 (或相应的int枚举) 而且我会用CKSubscription创build和观察Change表。 总是当一个logging被创build,更新,删除一个自定义表中,我会做两件事,做这个动作,作为第二个动作,我会在Change表中创build一个“日志条目” 。 因为它是Change的Insert操作,并且插入通知似乎正常工作,所有设备都会收到通知。 他们可以下载有关的logging。 你看到有什么缺点吗?

CloudKit fetchRecordChangesOperation提供了一个“AppDefaultZone不支持同步语义”

我正在使用一个CKFetchRecordChangesOperation CKFetchRecordsChangeToken抓住变化,它告诉我,“AppDefaultZone不支持同步语义”。 这是有问题的代码: – (void)downloadServerChangesWithCompletionBlock:(void (^)(NSError *error))completionBlock { // Prepare to fetch remote changes CKDatabase *database = [CKContainer defaultContainer].privateCloudDatabase; CKRecordZoneID *zoneID = [[CKRecordZoneID alloc] initWithZoneName:CKRecordZoneDefaultName ownerName:CKOwnerDefaultName]; // Initialize fetch record changes operation CKFetchRecordChangesOperation *fetchRecordChangesOperation = [[CKFetchRecordChangesOperation alloc] initWithRecordZoneID:zoneID previousServerChangeToken:[self changeToken]]; fetchRecordChangesOperation.recordChangedBlock = ^(CKRecord *record) { [self performRecordChange:record]; }; fetchRecordChangesOperation.recordWithIDWasDeletedBlock = ^(CKRecordID *recordID){ [self performRecordDeletion:recordID]; }; […]