schwach oder stark für IBOutlet und andere

Diese Frage hat hier bereits eine Antwort:

Sollten IBOutlets unter ARC stark oder schwach sein? 11 Antworten

Ich 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 diestrongIch 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 dervideDidUnloadVerwenden Sie stattdessen Xcodestrongund 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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage