如何在parse.com for ios中获取当前安装的徽章值?

如何在parse.com for ios中获取当前安装的徽章值?,ios,objective-c,push-notification,parse-platform,badge,Ios,Objective C,Push Notification,Parse Platform,Badge,我正在使用在设备之间发送推送通知 我正在发送带有徽章增量值1的推送消息。打开应用程序后,徽章值将设置为零。以上所有功能都运行良好。但是,我无法获得当前安装的徽章值 按照以下代码将当前安装标记设置为零的步骤 - (void)applicationDidBecomeActive:(UIApplication *)application { PFInstallation *currentInstallation = [PFInstallation currentInstallation]; i

我正在使用在设备之间发送推送通知

我正在发送带有徽章增量值1的推送消息。打开应用程序后,徽章值将设置为零。以上所有功能都运行良好。但是,我无法获得当前安装的徽章值

按照以下代码将当前安装标记设置为零的步骤

- (void)applicationDidBecomeActive:(UIApplication *)application {
  PFInstallation *currentInstallation = [PFInstallation currentInstallation];
  if (currentInstallation.badge != 0) {
     currentInstallation.badge = 0;
      [currentInstallation saveEventually];
  }
  // ...   
}
但是,在我的应用程序中,在收到消息后打开应用程序时,
currentInstallation.badge
为零。也就是说,我需要直接将currentInstallation.badge值设置为零,而不检查当前的badge值,如下所示

- (void)applicationDidBecomeActive:(UIApplication *)application {
  PFInstallation *currentInstallation = [PFInstallation currentInstallation];
  //if (currentInstallation.badge != 0) {
     currentInstallation.badge = 0;
     [currentInstallation saveEventually];
  // }
  // ...
}
很好用。但是,有了这个徽章价值,我需要在我的应用程序中完成一些其他任务


为什么我的徽章值返回零?我错过了什么

PFInstallation.badge返回保存到数据库的标记的最后一个值。 在您的情况下,它返回零,因为对象尚未从服务器刷新

在你杀死徽章之前,有两种获得徽章价值的方法:

解决方案#1(从UIApplication获取徽章值)

解决方案#2(刷新安装)


作为警告,请不要使用评论来要求他人回答您的问题。这些被标记在整个网站上,我已经删除了。@BradLarson,好的。我理解。由于我没有得到任何答案和评论,我向tag的四位顶级用户发表了评论(要求提供任何建议)。是我正在使用的SDK的开发人员
NSUInteger badgeValue = [UIApplication sharedApplication].applicationIconBadgeNumber;

PFInstallation *installation = [PFInstallation currentInstallation];
installation.badge = 0;
[installation saveEventually];
NSLog(@"%d", (int)badgeValue);
PFInstallation *installation = [PFInstallation currentInstallation];
[installation fetchInBackgroundWithBlock:^(PFInstallation *object, NSError *error) {
    NSUInteger badgeValue = installation.badge;
    installation.badge = 0;
    [installation saveEventually];
    NSLog(@"%d", (int)badgeValue);
}];