Iphone objective-c方法是否支持;传递值“;?
objective-c方法是否支持“传递值”?或者更具体地说:Iphone objective-c方法是否支持;传递值“;?,iphone,objective-c,ios,pass-by-reference,pass-by-value,Iphone,Objective C,Ios,Pass By Reference,Pass By Value,objective-c方法是否支持“传递值”?或者更具体地说: 传递到方法中的参数的默认行为是否按引用传递 如果是,在某些情况下是否有任何变化-例如,如果参数只是一个基本int而不是一个对象?(或者这与目标c无关) 对于int这样的基本变量,是否有方法支持传递值 是否有方法支持对象的传递值?(我在这里假设没有,但是为了完整性会问。当然,你可以在消息中自己做拷贝,但是对于这种方法,我会认为这不是Objul-C方法提供给你的,也就是它自己做的)。 谢谢 不是。默认情况下它是按值传递的,就像在C中一样
Objto-C不支持引用,至少不在C++意义上。 所有Objective-C对象都是在堆上分配的,因此所有“对象变量”实际上都必须是指针类型。指针是否可以被视为有效地等同于引用,这是一个值得商榷的问题。比如说C++时,有明显的语义差异(否则,什么意思……) 因此,要回答您的问题:
-1指针模拟引用,但它不是。公认的定义是,当方法代码接收到对变量的引用(而不是副本)时,通过引用传递用作方法参数的变量。这描述的是实施,而不是有效的结果。Objective-C只传递值,不管是指针还是其他任何东西。即使在使用
&p
(例如:N错误模式)时,您也在通过内存访问进行更改,而不是使用变量引用。C指针与C++不一样,C++有什么用?目标C在C++的意义上没有引用数据类型。我从你的回答中看出你已经明白了这一切。我只是为了访问此页面的人的利益而对-1进行了评论和投票,因为在按值传递/引用讨论的上下文中,调用指针引用不是合适的术语。