Stark Bezeichner der Standard mit @property-Anweisung?
Ich Lerne Objective-C und Cocoa-Framework (via Aaron Hillgass' Buch) und versucht herauszufinden, warum die folgende Zeile enthält, die "stark" - Kennung.
@property (strong) NSManagedObjectContext *managedObjectContext;
Als ich verstehen es, stark ist der Standard so, warum muss ich ausdrücklich erklären, es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es erklären, ohne das schreiben von irgendetwas, Aber was passiert, wenn Sie wieder kommen, um code oder andere Entwickler sieht dein code?
Haben Sie vielleicht das wissen, dass der Standardwert eingestellt werden, um starke, aber junior-level-Programmierer erhalten so verwirrt, um zu bestimmen, ob die deklarierten Variablen stark oder schwach ist.
strong
würde nicht erkannt werden. Allerdings, wenn es war kein Vermerk, es würde zusammenstellen in Ordnung, aber es würde wahrscheinlich am Ende im Speicher-management-Abstürze später die Linie nach unten, als vor dem ARC, Eigenschaften ausgefallen __unsafe_unretained.assign
, wahrscheinlich nur aus dem Grund @RichardJ.RossIII sagt.Zustimmen, Richard.
//Starke und Schwache Referenzen
ARC führt zwei neue object reference Qualifier: starke und schwache.
Unter ARC, alle Objekt-Referenz-Variablen sind starke standardmäßig.
Und dies gilt nicht nur für die Eigenschaften;
die Standard-id mit @property-Anweisung zuweisen, für nicht-Objekt-Typen,
für den Objekt-Typ sollte stark sein.
alle Objekt-Referenzen - Immobilien-Werte, Instanz-Variablen, automatische Variablen,
parameter, Variablen und statischen Variablen - wirken wie eine retain-property unter ARC.
id
es wird als eine Referenz auf ein Objekt, so wird es standardmäßigstrong
als gut.In Die Objective-C Programmiersprache:
Ist, das default-Attribut für die Set-Semantik ist zuweisen, anstatt starke.