CKFetchNotificationChangesOperation返回INSERT操作,但UPDATE和DELETE并不总是如此.DELETE,UPDATE在我向App Store提交应用程序时最后工作,但现在不再了.为什么?我创建了以下订阅:
let s = CKSubscription(recordType: recordType, predicate: NSPredicate(value: true), options: .FiresOnRecordCreation | .FiresOnRecordUpdate | .FiresOnRecordDeletion)
s.notificationInfo = CKNotificationInfo()
subscriptionsToSave.append(s)
Run Code Online (Sandbox Code Playgroud)
仪表板显示所有树触发器:

我没有使用任何alertBody,所以通知是一个所谓的无声通知,它可能是原因吗?
在CloudKit提示和技巧讲师说,订阅需要从开发人员门户打开应用程序ID的APS功能.我不认为我有,但我只想要提取通知,只有在这有效时才推送.
背景能力? - 同样的
需要在app的信息plist中设置APS环境密钥. - 我想我拥有它.
我使用cloudKit构建iOS应用程序.我正在尝试在cloudKit中批量获取数据,获得设备和cloudKit之间的增量,但似乎CKFetchRecordChangesOperation在公共数据库中不起作用.我唯一的选项是CKQuery来获取我的数据吗?例如:
CKContainer *container = [CKContainer containerWithIdentifier:containerID];
CKDatabase *publicDatabase = [container publicCloudDatabase];
CKQuery *query = [[CKQuery alloc] initWithRecordType:recordType
predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]];
CKQueryOperation *queryOp = [[CKQueryOperation alloc] initWithQuery:query];
queryOp.desiredKeys = @[@"record.recordID.recordName"];
queryOp.recordFetchedBlock = ^(CKRecord *record)
{
// do something...
};
queryOp.queryCompletionBlock = ^(CKQueryCursor *cursor, NSError *error)
{
// do something else...
};
queryOp.resultsLimit = CKQueryOperationMaximumResults;
[publicDatabase addOperation:queryOp];
Run Code Online (Sandbox Code Playgroud)
我真的很感谢你的帮助.
ios xcode6 cloudkit ckfetchrecordchangesopera ckfetchnotificationchange