最近,我看到以下一行:
[someObject release], someObject = nil;
为什么这样做?为什么以及在哪种情况下可以在一行中以,
分隔多个调用? (不 ;
)
答案 0 :(得分:3)
Objective C是C的超集,,
是C中的运算符。它计算链中的最后一个表达式,并创建sequence point。< / p>
分号;
不能在表达式中使用,因为它不是运算符。
您可能已经看到,
运算符在更常见的情况下工作,涉及for
循环:
int i = 0, j = 0;
for ( ; i < 200 ; i++, j += 3) { // This is one of the more typical uses of ','
}
答案 1 :(得分:1)
comma operator计算第一个操作数并丢弃结果,然后计算第二个操作数并返回其值。第一个没有返回值,第二个在这种情况下返回值为nil
。