标签: ckfetchnotificationchange

CKFetchNotificationChangesOperation有时不会返回UPDATE,DELETE通知

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环境密钥. - 我想我拥有它.

ios cloudkit ckfetchnotificationchange

8
推荐指数
1
解决办法
594
查看次数

cloudKit:公共数据库中的CKFetchRecordChangesOperation

我使用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

5
推荐指数
1
解决办法
829
查看次数