Ich verwende die Xcode-Beta für Entwickler und bemerke einige subtile Unterschiede. Darunter befindet sich ein neues Attribut für deklarierte Eigenschaften.
@property(strong)IBOutlet NSArrayController *arrayControl;
Meine Frage ist: Was bedeutet das starke Attribut? Ersetzt es ein älteres oder ist es etwas völlig Neues? Ich habe Google und die Entwicklerdokumentation durchsucht und konnte nichts finden. Bis ich weiß, was es ist, zögere ich, es zu benutzen.
Danke im Voraus
Antworten:
Es ist ein Ersatz für das
retain
Attribut als Teil von Objective-C Automated Reference Counting (ARC) . In Nicht-ARC-Code ist es nur ein Synonym fürretain
.quelle
Eine starke Referenz ist eine Referenz auf ein Objekt, die verhindert, dass die Zuordnung aufgehoben wird. Mit anderen Worten, es entsteht eine Eigentümerbeziehung. Während zuvor Sie dies tun würden:
**// Non-ARC Compliant Declaration @property(retain) NSObject *obj;**
Unter ARC gehen wir wie folgt vor, um sicherzustellen, dass eine Klasseninstanz ein Eigentumsinteresse an einem referenzierten Objekt hat (dh, es kann erst freigegeben werden, wenn der Eigentümer es ist).
**// ARC Compliant Declaration @property(strong) NSObject *obj;**
quelle
Wie wir wissen, können wir in iOS 5 kein Objekt in einem ARC-basierten Projekt freigeben. Wenn wir also ein Objekt zur späteren Verwendung behalten möchten und nicht möchten, dass ARC das Objekt aus dem Speicher entfernt, legen wir fest die Eigenschaft für das Objekt als "Stark".
quelle