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

时间:2017-09-15 19:47:16

标签: swift3

我想确保通过引用使用对象的每个实例。实例化它可能是几次但不应该被复制 F.E.在c ++中很容易做到:

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

就是这样。当然smbd可能会尝试在内存中进行一些破解 - 但它没有用,也不是那么容易。您应该确切地知道对象的内存布局以及它封装的所有字段。我不希望smth特别 - 只是等同于swift 3中的上述代码。

1 个答案:

答案 0 :(得分:1)

在Swift,classes are reference types。所以他们已经做了你想做的事:他们只能通过参考。它们总是在堆上,并且赋值将用于分配引用,而不是类内容。因此,请确保将对象声明为class而不是struct - 与C ++不同,Swift中两者之间的主要区别在于引用类型与值类型。