schwach oder stark für IBOutlet und andere
Diese Frage hat hier bereits eine Antwort:
Sollten IBOutlets unter ARC stark oder schwach sein? 11 AntwortenIch habe mein Projekt auf ARC umgestellt und verstehe nicht, ob ich es verwenden mussstrong
oderweak
für IBOutlets. Xcode mache dies: im Interface Builder, wenn a erstelle aUILabel
zum beispiel und ich verbinde es mit meinem editorassistentenViewController
, es schafft dies:
@property (nonatomic, strong) UILabel *aLabel;
Es nutzt diestrong
Ich habe stattdessen ein Tutorial auf der RayWenderlich-Website gelesen, in dem es heißt:
Aber für diese beiden besonderen Eigenschaften habe ich andere Pläne. Anstattstrong
, wir werden sie als deklarierenweak
.
@property (nonatomic, weak) IBOutlet UITableView *tableView;
@property (nonatomic, weak) IBOutlet UISearchBar *searchBar;
Weak
ist die empfohlene Beziehung für alleAuslauf Eigenschaften. Diese Ansichtsobjekte sind bereits Teil der Ansichtshierarchie des Ansichtscontrollers und müssen nicht an anderer Stelle beibehalten werden. Der große Vorteil, wenn Sie Ihre Verkaufsstellen angebenweak
Das spart Zeit beim Schreiben der viewDidUnload-Methode.
Derzeit ist unserviewDidUnload
sieht aus wie das:
- (void)viewDidUnload
{
[super viewDidUnload];
self.tableView = nil;
self.searchBar = nil;
soundEffect = nil;
}
Sie können es jetzt wie folgt vereinfachen:
- (void)viewDidUnload
{
[super viewDidUnload];
soundEffect = nil;
}
Also benutzeweak
, anstatt derstrong
, und entfernen Sie den Satz auf Null in dervideDidUnload
Verwenden Sie stattdessen Xcodestrong
und benutze dieself... = nil
in demviewDidUnload
.
Meine Frage ist: wann muss ich verwendenstrong
, und wannweak
? Ich möchte auch für das Deployment-Ziel iOS 4 verwenden, also wann muss ich das verwenden?unsafe_unretain
? Jeder kann helfen, mich mit einem kleinen Tutorial gut zu erklären, wenn man es benutztstrong
, weak
undunsafe_unretain
mit ARC?