Wenn ich eine Eigenschaft wie folgt erklären:Was ist die richtige Methode zum Erstellen eines benutzerdefinierten Setter für eine schwache Eigenschaft in Objective C?
@property(nonatomic,weak) Foo *someProperty;
und ich erkläre dann eine benutzerdefinierte Setter wie so:
- (void)setSomeProperty:(Foo *)someProp {
_someProperty = someProp;
//...more custom stuff
}
ist es etwas falsch mit diesem? Das heißt, der Compiler sollte automatisch den _someProperty-Ivar mit dem __weak-Modifikator synthetisieren, also sollte die Zuweisung im obigen Setter ausreichen, richtig?
+1 ganz einfach. –
Vielen Dank! So, wie ich es verstehe, wenn Sie einen benutzerdefinierten Setter in ARC schreiben, ist das einzige Mal, dass Sie sich Sorgen über "überschreiben" müssen die Attribute in der Eigenschaftsdeklaration, wenn Sie die Eigenschaft mit atomaren deklariert haben (in diesem Fall müssten Sie @synchronize um die Einstellung der iVar) und kopieren (in diesem Fall würde Ihre Zuweisung aussehen wie _someProperty = [someProp Kopie];) – adevine