我有一个int-flag,就像这样:
现在我有了这段代码:
if (flag & 4) //Beantwortet
{
imageView.image = [UIImage imageNamed:@"beantwortet-40.png"];
}
else if (flag & 2) //ungelesen
{
imageView.image = [UIImage imageNamed:@"Flag1-40.png"];
}
else
{
imageView.image = [UIImage imageNamed:@"neu-40.png"];
}
这意味着首先是:回答,第二个是:readed,last if:unreaded。
现在可以回复用户的邮件,但手动将标志设置为未读。这意味着int值为5.
如何检查?
我试过了:
else if (flag & 4 && flag & 1) //Beantwortet, aber auf "Nicht gelesen" gesetzt
{
imageView.image = [UIImage imageNamed:@"neu-40.png"];
}
但是我不仅得到5分,而且还得到7分。 如何检查5,但不是7?
答案 0 :(得分:1)
显而易见的是if((flag & 5) && !(flag & 2))
答案 1 :(得分:0)
为什么不检查int值是否为5,就像你说的那样?
else if (flag == 5) //Beantwortet, aber auf "Nicht gelesen" gesetzt
{
imageView.image = [UIImage imageNamed:@"neu-40.png"];
}
更新:如果您有超过前四个的标记,您可以预先过滤该值,然后进行检查:
else if ((flag & 7) == 5) //Beantwortet, aber auf "Nicht gelesen" gesetzt
{
imageView.image = [UIImage imageNamed:@"neu-40.png"];
}
这将掩盖除前三个之外的所有标志,因此即使其他标志设置为例如8或16,它们也不会参与此检查。