首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CKFetchNotificationChangesOperation?

如何使用CKFetchNotificationChangesOperation?
EN

Stack Overflow用户
提问于 2015-06-23 03:00:00
回答 1查看 552关注 0票数 2

如何使用CKFetchNotificationChangesOperation来处理和引导从订阅的CKSubscription到我的Mac应用程序中的- (void)application:(nonnull NSApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo {的所有遗漏通知?该方法的代码如下,

代码语言:javascript
复制
- (void)application:(nonnull NSApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo {

    NSLog(@"CKSubscription received.");

    CKQueryNotification *cloudKitNotification = [CKQueryNotification notificationFromRemoteNotificationDictionary:userInfo];

    [[NSNotificationCenter defaultCenter] postNotificationName:@"CloudKitUpdated" object:nil userInfo:@{@"ckNotification" : cloudKitNotification}];
}

我的应用程序是一个菜单,我希望它检查是否有遗漏的通知,并在点击菜单时正确处理它们。

更新:这是我一直在尝试的代码,但是数组总是空的,没有错误。我正在测试运行应用程序,关闭应用程序,删除记录,然后再运行应用程序。

代码语言:javascript
复制
 NSMutableArray *array = [NSMutableArray array];
    CKFetchNotificationChangesOperation *operation = [[CKFetchNotificationChangesOperation alloc] initWithPreviousServerChangeToken:nil];
    operation.notificationChangedBlock = ^(CKNotification *notification) {
        [array addObject:notification.notificationID];
    };
    operation.completionBlock = ^{


    };

    operation.fetchNotificationChangesCompletionBlock = ^(CKServerChangeToken *token, NSError *error) {


            NSLog(@"Missed notifications: %@", array);

    };

    [_myContainer addOperation:operation];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-23 19:12:56

代码语言:javascript
复制
NSMutableArray *array = [NSMutableArray array];
CKFetchNotificationChangesOperation *operation = [[CKFetchNotificationChangesOperation alloc] initWithPreviousServerChangeToken:nil];
operation.notificationChangedBlock = ^(CKNotification *notification) {
    [array addObject:notification.notificationID];
};
operation.completionBlock = ^{


};

operation.fetchNotificationChangesCompletionBlock = ^(CKServerChangeToken *token, NSError *error) {


        NSLog(@"Missed notifications: %@", array);

};

[_myContainer addOperation:operation];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30993115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档