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?
Sie würden copy
verwenden, wenn Sie den Status des Objekts garantieren möchten.
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.
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.
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.
Tags und Links objective-c copy retain