2012-05-24 47 views
3

我正在试验清除来自通知中心的通知(其中解决方法包括将徽章号码设置为0,因为没有api可以删除它们)。setApplicationIconBadgeNumber没有任何作用

但是在实验中我注意到我无法得到setApplicationIconBadgeNumber对徽章编号有任何影响。

例如,如果我有:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
     [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 5]; 

(和setApplicationIconBadgeNumber不会被调用其他地方)

再有就是对图标没有徽章,让含有一些独自一人。

(该通知不设置徽章数量,或许必须有setApplicationIconBadgeNumber之前开始徽章数量:有任何影响,任何人都可以证实或否认?)

UPDATE:,我已经在控制台中注意到了这一点,也许其相关:

May 24 16:12:49 unknown installd[138] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile 
May 24 16:12:49 unknown SpringBoard[51] <Warning>: Killing com.mycompany.xxx for termination assertion 
May 24 16:12:50 unknown installd[138] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile 
May 24 16:12:50 unknown SpringBoard[51] <Warning>: Reloading application state for 'com.mycompany.xxx' as its modification date or path has changed 
May 24 16:12:50 unknown SpringBoard[51] <Warning>: Reloading and rendering all application icons. 

最后一行的声音有关,这还只是刚刚开始发生,不知道为什么,我没有改变型材等,他们是最新的和有效的在Xcode中。我将为此发布一个单独的问题

+0

我没有变,在控制台的任何更多,但我仍然无法看到任何徽章图标。做我的头。 – Gruntcakes

回答

2

您可能会尝试逐个递增和递减徽章数量。

[UIApplication sharedApplication].applicationIconBadgeNumber++;  

虽然,我怀疑你的问题是,更多的时候你的程序获取到这行代码的问题。

希望这会有所帮助。

+0

没有,这不会做任何事情。 – Gruntcakes

0

我刚刚发现它必须是一个> 0的数字。它没有任何方式负数。

2

我也有这个问题。

虽然它的测试设备上,下面一行是正确的调用:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 5];

它那里得到所谓的,虽然很重要。如果你只把它称为:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

如果应用程序已经完全关闭它只会执行。虽然测试,因为你是在和出了很多,应用程序可能只进入后台和被暂停,在这种情况下调用它还有:

- (void)applicationDidBecomeActive:(UIApplication *)application 

希望有所帮助。

10

如果您无法setApplicationIconBadgeNumber在iOS8上不工作+那是因为你要问在iOS8上启动本地通知的用户权限:

UIUserNotificationType userNotificationTypes = UIUserNotificationTypeBadge; 
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil]; 
[application registerUserNotificationSettings:settings]; 
+0

非常感谢!解决了我的问题iOS9 + – quarezz

+1

这也是iOS 8需要的。 – arlomedia

+0

@arlomedia:你说得对。我更新了我的答案。谢谢 – GingerBreadMane