Ich möchte sicher sein, dass jede Instanz des Objekts als Referenz verwendet wird. Instanziiert könnte es mehrere Male sein, sollte aber nicht kopiert werden.
F.e. in C++ ist es einfach zu tun:Wie kann man das Kopieren von Objekten in swift3 verbieten?
class A {
public:
A(const A&) = delete;
A& operator = (const A&) = delete;
};
Das ist. Natürlich könnte smbd versuchen, etwas in Erinnerung zu behalten - aber es ist nicht nützlich und nicht so einfach. Sie sollten das Speicherlayout Ihres Objekts und aller Felder, die es einkapselt, genau kennen. Ich will nicht smth special - nur gleichwertig mit dem Code oben in swift 3.
Sie können das nicht sicherstellen. Selbst wenn Sie das Kopieren in das Objekt selbst mit Hilfe von Zeigern deaktivieren, können Sie auf dessen Speicheradresse zugreifen und deren Inhalt kopieren. Sie können nicht zulassen, dass Benutzer Ihres Codes auf den Speicher zugreifen. Ich schätze, Sie erstellen ein Framework und möchten einige Intervallvariablen davor schützen, missbraucht zu werden. Stellen Sie in diesem Fall mehr Kontext bereit, und möglicherweise kann Ihnen jemand eine Problemumgehung anbieten. Was Sie jedoch wünschen, ist nicht möglich. –
@ DávidPásztor Ihr Raten ist zu kompliziert. Ich möchte nur das normale Kopieren für das Objekt deaktivieren. – denys