Ios 如何按值传递引用类型?

Ios 如何按值传递引用类型?,ios,swift,Ios,Swift,几分钟前我了解到,swift中的类实例是引用类型。然而,当我问到如何将一个实例作为副本传递,或者只是在一个函数中创建一个副本时,似乎没有人确切知道。所以我的问题是: 是否可以通过值将类对象传递给函数? 如果是,如何执行;如果不是,如何处理副本?不可能按值传递Swift中的类对象。此外,没有制作对象副本的通用方法,因此您需要自己提供适当的初始化器。值对象和引用对象有不同的用途。询问如何通过值传递引用对象是毫无意义的。然而,很多时候你会传递不可变的对象,这意味着对对象的引用就是值 顺便说一下:你不是

几分钟前我了解到,swift中的类实例是引用类型。然而,当我问到如何将一个实例作为副本传递,或者只是在一个函数中创建一个副本时,似乎没有人确切知道。所以我的问题是:

是否可以通过值将类对象传递给函数?
如果是,如何执行;如果不是,如何处理副本?

不可能按值传递Swift中的类对象。此外,没有制作对象副本的通用方法,因此您需要自己提供适当的初始化器。

值对象和引用对象有不同的用途。询问如何通过值传递引用对象是毫无意义的。然而,很多时候你会传递不可变的对象,这意味着对对象的引用就是值

顺便说一下:你不是指“类对象”。你的意思是“类的实例”。在Objective-C中,类本身就是对象。例如,向类对象发送alloc消息

如何按值传递引用类型

这个问题的答案是,你只要通过它,通过值。它的工作方式与引用类型和值类型完全相同。Swift中未标记为inout的任何参数都是传递值

引用类型变量的值是指向对象的引用。通过值传递引用时,接收函数将接收指向同一对象的该引用的副本

进一步阅读您的问题后,您似乎根本没有询问引用类型的传递。相反,您询问的是对象的复制。当您编写“引用类型”时,您真正的意思是类似于“对象类型”的东西,其值是一个对象,当通过值传递时,会产生对象的副本


Swift没有“对象类型”;就像Objective-C和Java没有“对象类型”。不可能有一个值为“对象”的变量;只能有一个值为“指向对象”的引用的变量。可以通过这些参照操作对象。语言中没有语法来“去引用”它指向的对象的引用。

我想你是在谈论NSCopying和CopyOfZealZead。@萨米尔,我在谈论初始化类,它和一个参数具有相同的类对象。也许你可以使用Stutt,对象为Value:Value:C++,是<代码> MyClass Foo= MyClass()。被称为类对象,因此它是一个实例。然而,如果我将foo传递给一个函数,那么如果我不使用引用(&),它将是该函数内部的一个副本(如果有一个复制构造函数可用)。也许这让我想问的问题更清楚了。不管怎样,谢谢你说得这么清楚,这就是我想要的答案。你最后一句话说得很清楚。然而,我根本没有使用“引用类型”,只是对它进行了编辑。Huver现在很好,Swift没有“对象类型”,我从C++世界出来,也许这就是为什么我只是误解了对象的东西。