Welche „Top-Level-Objekte“ spricht von Apple über im Memory Management Programming Guide?
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?
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