Hier finden Sie Informationen zu den Eigenschaften von Variablen
- atomar // Standard
- nichtatomar
- strong = beibehalten // Standard
- schwach
- behalten
- // Standard zuweisen
- unsafe_unretained
- Kopieren
- schreibgeschützt
- readwrite // default
Im Folgenden finden Sie den detaillierten Artikel-Link, über den Sie alle oben genannten Attribute finden, die Ihnen trotzig helfen werden. Vielen Dank an alle, die hier die besten Antworten geben !!
Variable Eigenschaftsattribute oder Modifikatoren in iOS
01. stark (iOS4 = beibehalten)
- es heißt " Behalte dies auf dem Haufen, bis ich nicht mehr darauf zeige" - mit anderen Worten "Ich bin der Besitzer, du kannst dies nicht freigeben, bevor du gut mit dem gleichen Ziel wie" Behalten "zielst "- Sie verwenden strong nur, wenn Sie das Objekt behalten müssen. - Standardmäßig sind alle Instanzvariablen und lokalen Variablen starke Zeiger. - Wir verwenden im Allgemeinen strong für UIViewController (die Eltern des UI-Elements). - strong wird mit ARC verwendet und hilft Ihnen im Grunde, indem Sie sich nicht um die Anzahl der Objekte kümmern müssen. ARC gibt es automatisch für Sie frei, wenn Sie damit fertig sind. Wenn Sie das Schlüsselwort strong verwenden, bedeutet dies, dass Sie das Objekt besitzen.
Beispiel:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. schwach (iOS4 = unsafe_unretained)
- es heißt " Behalte dies, solange jemand anderes stark darauf hinweist" - dasselbe wie Zuweisen, kein Zurückhalten oder Freigeben - Eine "schwache" Referenz ist eine Referenz, die du nicht behältst. - Wir verwenden im Allgemeinen schwach für IBOutlets (UIViewController's Childs). Dies funktioniert, weil das untergeordnete Objekt nur so lange existieren muss, wie das übergeordnete Objekt. - Eine schwache Referenz ist eine Referenz, die das referenzierte Objekt nicht vor der Sammlung durch einen Garbage Collector schützt. - Schwach ist im Wesentlichen zuzuweisen, eine nicht zurückgehaltene Eigenschaft. Außer wenn das Objekt freigegeben wird, wird der schwache Zeiger automatisch auf Null gesetzt
Beispiel:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Erklären Sie : Danke an BJ Homer
Stellen Sie sich vor, unser Objekt ist ein Hund und der Hund möchte weglaufen (freigegeben werden). Starke Zeiger sind wie eine Leine am Hund. Solange Sie die Leine am Hund befestigt haben, rennt der Hund nicht weg. Wenn fünf Personen ihre Leine an einem Hund befestigen (fünf starke Zeiger auf ein Objekt), rennt der Hund nicht weg, bis alle fünf Leinen gelöst sind. Schwache Zeiger hingegen sind wie kleine Kinder, die auf den Hund zeigen und sagen: "Schau! Ein Hund!" Solange der Hund noch an der Leine ist, können die kleinen Kinder den Hund noch sehen und sie werden immer noch darauf zeigen. Sobald jedoch alle Leinen gelöst sind, rennt der Hund weg, egal wie viele kleine Kinder darauf zeigen. Sobald der letzte starke Zeiger (Leine) nicht mehr auf ein Objekt zeigt, wird die Zuordnung des Objekts aufgehoben und alle schwachen Zeiger werden auf Null gesetzt. Wann verwenden wir schwach? Das einzige Mal, wenn Sie schwach verwenden möchten, ist, wenn Sie Aufbewahrungszyklen vermeiden möchten (z. B. behält der Elternteil das Kind und das Kind behält den Elternteil, sodass keiner jemals freigegeben wird).