价值如何传递结构?

Ver*_*ive 3 structure objective-c parameter-passing

在“ Objective-C的Java程序员,第1部分 ”介绍由大卫Chisnall的规定,

与总是通过引用传递的对象不同,结构通常通过值传递。

我对Objective-C(来自C ++)非常陌生,因此我很难理解这一点。在C ++中,我可以通过指针或引用来传递结构,但不能通过值传递(可能是因为它效率很低)。

Objective-C如何做到这一点?是否真的像堆叠一样逐一推动所有结构成员?

如果结构是由大型/复杂对象组成的,会发生什么?

NiV*_*VeR 5

是的,它复制了整个结构,并将该结构传递给了调用函数,并且所做的任何修改都不会影响原始结构。缺点当然是因为它速度慢,而且会占用两倍的空间。