类似if语句的分配

时间:2012-07-06 11:25:27

标签: objective-c ios

这更像是一般性问题:有没有办法分配像if语句这样的值?我有一本字典,我想检查 key 是否存在,然后分配。例如:

if((_attr.val = [self.dic objectForKey:@"name"]))

我知道如果 key 存在于_attr.val中,我将获得对象,如果不是,我将获得null。太好了,但是如果statemant需要to_do_something,但在我的情况下这就是它 - 所有我想做的事。

这可能是一个愚蠢的问题,但我找不到解决方案。

我想从c ++中找到像ASSERT()这样的东西。

1 个答案:

答案 0 :(得分:1)

当您想要创建条件路径时,if 才有意义。在这种情况下,您只想将值分配给_attr.val,仍然应该检查一切是否符合您的预期。我会选择:

_attr.val = [self.dic objectForKey:@"name"]
if(!_attr.val){
  // Conditional case for a nil value.
}

如果最终结果(值或nil)无关紧要,请执行:

_attr.val = [self.dic objectForKey:@"name"]

无论哪种方式,如果您在考虑if的情况下开始提出这个问题,那么您似乎想要进行某种检查。

使用NSAssert

_attr.val = [self.dic objectForKey:@"name"]
NSAssert(_attr.val,@"Value is nil");