布尔值取决于徽章编号

时间:2013-08-20 15:59:00

标签: ios if-statement detection badge

好吧所以我想到了一个想法来解决我上一篇文章的限制(对于那些正在读这篇文章的人来说)。我需要做的是检测应用程序徽章编号是否大于0,然后根据它是否更大来设置布尔值。这是我的代码:

Code is no longer relative to the question.

好的,设置布尔值。接下来我阅读它并使用以下代码执行我的操作:

Code is no longer relative to the question.

我唯一的问题是,无论徽章编号是多少,它都表示数字是1然后即使它是1也不执行我的代码。任何人都知道我在做什么错误?是其他声明还是我检测徽章编号的方式?谢谢你的帮助!我真的很重视这一点,因为这是我在我的应用中遇到的唯一一面墙。

编辑: 我已经解决了我的问题,下面是我使用的代码。请注意,这必须进入app delegate。

int badge = application.applicationIconBadgeNumber;
if(badge)
{
    NSLog(@"App Badge is Greater Than 0");
}
    else
{
    NSLog(@"App Badge is Equal To 0");
}

2 个答案:

答案 0 :(得分:0)

通常,使用NSUserDefaults在应用程序的调用中持久存储值。虽然我不确定您确实需要使用NSUserDefaults(为什么不只是将'全局'变量指定为Boolean needAutoSMS),如果您使用NSUserDefaults,请在设置值后执行以下操作:

[[NSUserDefaults standardUserDefaults] synchronize]

答案 1 :(得分:0)

好的,在阅读了一本关于使用Cocoa的书后,我找到了自己问题的答案。这是我做的:

int i = application.applicationIconBadgeNumber;
int y = 0;
NSLog(@"The result is %@", (y<i ? @"True" : @"False"));
if(i)
{
    NSLog(@"App Badge is Greater Than 0");
}
else
{
    NSLog(@"App Badge is Equal To 0");
}

你把它放在 - (void)applicationDidBecomeActive:(UIApplication *)应用程序中。此代码比较应用程序的图标徽章,然后查看它是否大于y(在我的情况下为0)并返回true或false,具体取决于徽章编号。希望这可以帮助其他人!

编辑:阅读上面的帖子。它有一个更简单的代码版本。