Ich mag würde wissen, welche Stelle am besten ist es, die IBOutlets von Storyboards für die Platzierung:IBOutlet Best Practices
a) In der Header-Datei (.h)
b) In einer Klasse-Erweiterung auf dem geschaffen. m-Datei
Danke
Grüße
Ich mag würde wissen, welche Stelle am besten ist es, die IBOutlets von Storyboards für die Platzierung:IBOutlet Best Practices
a) In der Header-Datei (.h)
b) In einer Klasse-Erweiterung auf dem geschaffen. m-Datei
Danke
Grüße
Unter der Annahme, dass dies für einen view-Controller ist, Option b ist besser, als Sie sollen nicht die Auslässe aussetzt werden öffentlich fo Andere Klassen können direkt interagieren. Sie sollten als Ihr privates Wissen betrachtet werden. Ihr Controller sollte eine andere und geeignetere Schnittstelle bereitstellen.
Wenn es eine Ansicht ist, ist es etwas grauer, wie Sie das Problem angehen sollten, da MVC Sie dazu führen würde, die Ausgänge freizulegen, damit der Controller sie verwenden kann. MVVM würde Sie dazu führen, die Steckdosen zu verbergen, so dass die Ansicht ein Ansichtsmodellobjekt passiert und intern die Steckdosen konfiguriert.
Die Klassenerweiterung ist der beste Ort, wenn Sie diese Steckdose nicht öffentlich zugänglich machen möchten. Ihre .h
sollte ordentlich und sauber sein und sollte nur solche Methoden oder Eigenschaften enthalten, die öffentlich sind (verfügbar für andere Programmierer). Auf diese Weise können Sie Ihre Mitspieler nicht verwirren wird nicht unnötig ivars und Methoden Verzögerung in .h
Datei
mit Es ist alles über die Verwaltung von Code und weniger Verwirrung machen, sonst gibt es keine privaten Methoden/Eigenschaften in Objective-C
Auch wenn Sie eine Probe von Apple überprüfen, folgen sie dem gleichen Muster. z.B. LoadingStatus.m hat Code
#import "LoadingStatus.h"
@interface LoadingStatus()
@property (nonatomic, strong) UIActivityIndicatorView *progress;
@property (nonatomic, strong) UILabel *loadingLabel;
@end
Von Apple Resource Programming Guide: Nib Files:
Outlets sind in der Regel privat als Bestandteil der Definitionsklasse; Sofern es keinen Grund gibt, die Eigenschaft öffentlich verfügbar zu machen, verstecken Sie die Eigenschaftendeklarationen durch eine Klassenerweiterung.
Die @interface kann in erscheinen sowohl in der H-Datei (öffentliche Eigenschaften) und die .m-Datei (private Eigenschaften). Die IBOutlets sollten in der .m-Datei deklariert werden.
Wenn Sie interessiert sind diese topic lesen.
Prost!
Sie müssen bedenken, dass .h ein öffentlicher Header ist.
So platzieren Sie Ihre IBOutlet
ist da, wenn sie für andere Klassen zugänglich sein sollte.
Allerdings, obwohl Sie das tun können. Ich würde sagen, dass die Offenlegung der IBOutlet
in einem öffentlichen Header keine gute Praxis ist (aus der Perspektive der Objektorientierung), da Sie einige Implementierungsdetails offenlegen, die nur für wen sichtbar sein sollten.
Kurz gesagt, ist die Platzierung der IBOutlet
in einer Klassenerweiterung in der .m
eine gute Praxis.
Wenn Sie von anderen VC auf diese Steckdose zugreifen möchten, dann .h sonst .m –
@Bhavin Best Practice würde dazu führen, dass Sie nicht auf die Steckdose von einem anderen VC zugreifen möchten – Wain