Ich habe ein Problem beim Verständnis der Eigenschaften. Welche Art von Eigenschaft sollte ich schreiben, wenn ich möchte, dass ein Attribut nicht durch seine Accessoren geändert wird (Rückgabe durch Kopie) und durch Referenz (beibehalten) gesetzt wird.Eigenschaften, die Kopien von Objekten im Getter zurückgeben und Objekte im Setter beibehalten
Beispiel:
MyType* theAttribute = MyObject.attribute;
[theAttribute changeSomething]; // Does not have to change the MyObject attribute, working with a copy return
MyType tmpObject = [[MyType alloc] init];
MyObject.attribute = tmpObject; // Want a retain here
[tmpObject release];
Da "atomar" die Standardeinstellung ist, müssen Sie auch den 'Setter' schreiben. Sie können synthetisierte Getter nicht mit manuell geschriebenen Sätzen mischen oder umgekehrt. (GCC kann dies passieren lassen, aber es ist falsch. LLVM 2.0 warnt richtig/Fehler auf solche Spielereien.) – bbum
Danke, Bill. Ich habe meine Antwort geändert – Abizern