2012-01-13 53 views
2

我想每个用户打开应用程序时清除应用程序图标徽章的GameKit秒内徽章号返回。在我的应用程序,我清除徽章用下面的代码:应用程序图标徽章清除短暂,但回合制应用

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
[[UIApplication sharedApplication] cancelAllLocalNotifications]; 

我把这个代码在这两个- (void) applicationDidFinishLaunching:(UIApplication*)application-(void) applicationWillEnterForeground:(UIApplication*)application。在运行上述代码清除徽章之前,我还在- (void) applicationDidFinishLaunching:(UIApplication*)application中注册了远程通知。

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge)]; 

如果我启动应用程序,然后返回到主屏幕上,我看到了应用程序的徽章已经被清除,但是里面一两秒钟返回的值完全相同这是它被清除了。

我没有使用本地或推送通知自己,但因为它是一个回合制的比赛相当的GameKit使用它们。当某些事件发生(例如它变成本地玩家轮到比赛)时,推送通知被发送到他们的设备。

我会做什么错?

+0

您能解决/调试此问题吗? – 2012-02-10 22:50:29

回答

1

我今天在我的设备上看到类似的问题。我注意到我有这个问题的设备是在我公司的VPN上。关闭VPN连接后,该徽章将彻底清除。我猜这台设备在清除过程中无法与APNS通信。

不是一个令人信服的答案,但我没有,自从问题。

+0

感谢您的输入。我不在VPN上,但问题依然存在。我希望这或者与我正在使用沙箱帐户或我正在玩我的设备和模拟器之间的事实有关。 – jonsibley 2012-02-11 02:59:46

+0

其实这个问题根本与VPN无关。徽章回来了。这看起来像是一个iOS bug,你测试的是哪个版本的iOS? – 2012-02-11 03:57:03

+0

我的设备是5.0.1,Xcode 4.2。我在设备和模拟器上都看到了错误的横幅。 – jonsibley 2012-02-11 13:11:25

2

这不是解决问题的办法,但我的意见我已经做:

首先我的比赛是从的GameKit一个TurnBasedMatch,但我不得不改变正常的比赛,所以我觉得我必须去通过再次检查代码是否可以找到GameKit发送的烦人通知。

无论如何它绝对是GameCenter: 我有两个测试计数,一个在我的iPhone上运行,一个在模拟器中。当我切换这些时,“BageCount”也会改变。在我的AppDelegate我将它设置为-1(0它不工作对我来说):

[UIApplication sharedApplication].applicationIconBadgeNumber = -1; 

的AppBage在前看不见1-2秒,然后回来。

这种或那种方式,必须有明确这些通知出的解决方案“的GameCenter - 通知中心”!

相关问题