2011-10-02 99 views
2

我明白在平原C.前缀和后缀符号之间的差Objective-C方法调用中前缀/后缀增量的区别?

我是,然而,不知道是否施加到目标C法相同的规则调用等

[myObject foo:++i]; 

[myObject foo:i++]; 

或者是“内部C表达式”总是先评估,这两个方法调用因此产生相同的结果?

回答

4

是,适用同样的规则。 Obj-c是c的严格超集,所以在c中工作的所有东西在Objective-c中的工作方式都完全相同。

++i 

将递增i方法被调用,以便那些2种方法将不会产生相同的结果之前(假设,或者当然,该结果取决于i的值)。一个在i增加后被调用,另一个在之前被调用。


+0

我刚刚试了一下,它确实是你说的方式。然而,我并不认为在这种特殊情况下“superset”参数是一个非常好的参数,因为它可能是Objective-C分别评估C表达式并将最终结果插入到方法调用语句中。 – tajmahal

2

为什么没有真正尝试,找出的一个超集?

结果正如所预料的前缀版本的方法调用运行之前。后缀在方法调用之后运行。