Objective C kopieren und beibehalten

7

Also, nur eine einfache Frage, wann sollte ich kopieren anstatt zu behalten. Ich habe versucht, aus dem Internet zu schauen, habe es aber nicht verstanden. Könnte mich also jemand aufhellen?

    
Samuli Lehtonen 22.06.2011, 14:34
quelle

3 Antworten

27

Sie würden copy verwenden, wenn Sie den Status des Objekts garantieren möchten.

%Vor%

An dieser Stelle wurde b gerade von der 3. Zeile durcheinandergebracht.

%Vor%

In diesem Fall ist b die ursprüngliche Zeichenfolge und wird nicht durch die dritte Zeile geändert.

Dies gilt für alle veränderbaren Typen.

    
Joshua Weinberg 22.06.2011, 14:39
quelle
7

beibehalten : Es wird für das erstellte Objekt ausgeführt, und es erhöht nur die Anzahl der Referenzen.

copy - Erzeugt ein neues Objekt und wenn ein neues Objekt erstellt wird, wird count 1 sein. Hoffe, das kann dir helfen.

    
iPhone NewBIe 04.12.2012 05:59
quelle
3

Kopieren ist nützlich, wenn Sie nicht möchten, dass der Wert, den Sie erhalten, ohne Ihr Wissen geändert wird. Wenn Sie zum Beispiel eine Eigenschaft haben, die ein NSString ist und Sie davon ausgehen, dass sich diese Zeichenfolge nicht ändert, sobald sie gesetzt ist, müssen Sie kopieren. Andernfalls kann Ihnen jemand NSMutableString übergeben und den Wert ändern, der wiederum den zugrunde liegenden Wert Ihres NSString ändert. Das gleiche gilt für NSArray und NSMutableArray , außer dass die Kopie eines Arrays alle Pointer-Referenzen auf ein neues Array kopiert, aber verhindert, dass Einträge entfernt und hinzugefügt werden.

    
Joe 22.06.2011 14:39
quelle

Tags und Links