想在iOS sdk中反转BOOL值

Nis*_*shi 2 boolean ios

我在iOS sdk中从plist获取id值,如果我获得值0,那么我必须将其显示为1,反之亦然.

这是我的相同代码

+(BOOL) removeButton {
   id obj = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"ABC"];
   if (obj != Nil) {
      return (BOOL)obj;
  }
    return YES;
 }
Run Code Online (Sandbox Code Playgroud)

但问题是,当id的值为0时,它将返回No,反之亦然.但是我想把我的条件放在相反的事情上,比如假设id的值是0然后我必须显示返回YES,反之亦然.

bor*_*den 7

你可以不投idBOOL.假设它被正确存储,你从字典中获取它的方式是通过数字包装器NSNumber.

NSNumber *boolWrapper = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"ABC"];
return ![boolWrapper boolValue];
Run Code Online (Sandbox Code Playgroud)

这将返回0表示1,1表示0表示.

如果你只是像你正在做的那样投射它,除非对象不存在(即它nil),否则它将永远是真的.