如何禁止在swift3中复制对象?

如何禁止在swift3中复制对象?,swift3,Swift3,我想确保对象的每个实例都被引用使用。实例化可以多次,但不应复制。 C++中的F.e.很容易做到: class A { public: A(const A&) = delete; A& operator = (const A&) = delete; }; 就是。当然,smbd可以尝试在内存中进行一些黑客攻击,但这并不有用,也不那么容易。您应该确切地知道对象的内存布局及其封装的所有字段。我不想要smth特别版-只是swift 3中上面代码的等效版本。在swi

我想确保对象的每个实例都被引用使用。实例化可以多次,但不应复制。
C++中的F.e.很容易做到:

class A {
public:
    A(const A&) = delete;
    A& operator = (const A&) = delete;
};

就是。当然,smbd可以尝试在内存中进行一些黑客攻击,但这并不有用,也不那么容易。您应该确切地知道对象的内存布局及其封装的所有字段。我不想要smth特别版-只是swift 3中上面代码的等效版本。

在swift中。所以他们已经做了你想做的事情:他们只能被引用。它们总是在堆上,赋值的作用是分配引用,而不是类内容。所以,请确保将对象声明为类< /C>而不是<代码> Stutt >不同于C++,SWIFT中的两个主要区别是引用类型与值类型。

您不能确定。即使您设法使用指针禁用复制到对象本身,也可以访问其内存地址并复制其内容。不能禁止代码用户访问内存。我猜您正在创建一个框架,希望保护一些区间变量不被误用。在这种情况下,提供更多的上下文,也许有人能为你提供解决办法,但你所要求的是不可能的。@DávidPászor你的猜测太复杂了。我只想禁用对象的常规复制。我的问题与一般对象相关,而不仅仅是类。对于类,我们不应该这样做-对于
struct
s,如何这样做?