2012-01-13 52 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 - 通知中心」!

相關問題