这更像是一般性问题:有没有办法分配像if语句这样的值?我有一本字典,我想检查 key 是否存在,然后分配。例如:
if((_attr.val = [self.dic objectForKey:@"name"]))
我知道如果 key 存在于_attr.val中,我将获得对象,如果不是,我将获得null。太好了,但是如果statemant需要to_do_something,但在我的情况下这就是它 - 所有我想做的事。
这可能是一个愚蠢的问题,但我找不到解决方案。
我想从c ++中找到像ASSERT()这样的东西。
答案 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");