0

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

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

而且我知道如果_attr.val 中存在,我将获得对象,否则我将获得空值。太好了,但是如果 statemant 在它之后需要 to_do_something,但在我的情况下就是这样 - 我想做的所有事情。

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

我想找到像 C++ 中已知的 ASSERT() 之类的东西。

4

1 回答 1

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"); 
于 2012-07-06T11:30:14.430 回答