Welche „Top-Level-Objekte“ spricht von Apple über im Memory Management Programming Guide?

StackOverflow https://stackoverflow.com/questions/804539

  •  03-07-2019
  •  | 
  •  

Frage

Im Memory Management Programming Guide für Cocoa Apple-Gespräche über Top-Level-Objekte. Sie sagen, dass ich einen Ausgang für jeden von ihnen benötigen.

  

Wenn es eine Top-Level sind Objekte, die Sie   lagere nicht in Steckdosen, aber Sie   muss behalten entweder das Array zurück   von den loadNibNamed: Eigentümer: Optionen:   Verfahren oder die Objekte innerhalb des Arrays   diese Objekte zu verhindern, dass   freigegeben vorzeitig.

Also, was genau tun sie mit „Top-Level-Objekt“ zu verstehen? Ich würde sagen, dass sie über die Root-Ansicht und Fenster sprechen. Was sonst? Und ist dieser Hinweis nur für Fälle, in denen ich mag ihre Feder manuell laden? Oder ist es für jede Feder anwenden und jeden Fall?

War es hilfreich?

Lösung

Top-Level-Objekte sind Objekte, die in der Hauptspitze Fenstern erscheinen im Interface Builder, andere als Datei-Besitzer und Anwendung.

Andere Tipps

Ja, das ist über die Fälle, in denen Sie die Nib manuell geladen werden, sonst würden Sie nicht genannt haben loadNibNamed: Eigentümer: Optionen:.

Objekte, die mit Datei-Besitzer, First Responder, Ansicht im Fenster erscheinen, sind Top-Level-Objekte. Alles, was Sie zu der Ansicht hinzufügen wird ein Subview sein - alle Subviews durch ihre direkten Superzurückgehalten werden, so brauchen sie nicht an anderer Stelle zurückgehalten werden. Die Ansicht selbst wird durch den View-Controller zurückgehalten, so dass muss nicht beibehalten werden.

Wenn Sie nicht-Ansicht Objekte hinzufügen oder Ansichten, die Sie nicht Ihre Hauptansicht setzen in sofort (zB Werkzeugleisten-Schaltflächen, die derzeit nicht zeigen, sind), die Sie brauchen, um sie zu behalten, oder sie werden frei bekommen. Meine bevorzugte Methode, dies zu tun ist mit IBOutlets mit @property, wie folgt aus:

@property(nonatomic, retain) IBOutlet UIBarButtonItem * myButton;

Das verursacht -setMyButton. Auf Datei des Besitzers aufgerufen werden (wenn dieser Code in der Datei des Inhabers ist) und das Objekt durch IB verbunden ist, gesendet in dieser Eigenschaft gespeichert werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top