Objective-C: Import-Header in .h oder .m?
Ich bin neu in objective-c und würde gerne wissen, die beste Praxis für den Import von externen Headern, die ich in meiner Klasse.
Sollte ich mich mit der Speicherung der #import "Klasse.h" in meinem eigenen Unterricht .h-Datei oder in der .m-Datei?
Was ist der Unterschied?
Dank!
- Mögliche Duplikate von setzen Sie #import s in .h oder .m-Dateien?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es richtig, die Praxis zu setzen, eine forward-Deklaration der Klasse (
@class classB;
) in der Kopf-und#import "classB.h
im .mEiner forward-Deklaration der Klasse, wie
@class classB;
lässt der compiler weiß, es sollten erwarten, dass die Klasse später auf, und es sollte nicht meckern im moment.Zur Vermeidung von zirkelreferenzen nur die #import-header-Datei in einer anderen Klasse die header-Datei, wenn es die Erben von dieser Klasse. Andernfalls verwenden Sie
@class ClassName
zu erklären, dass die Klasse geben, wenn Sie es brauchen in Ihrem header-Datei #und importieren Sie Sie in die Implementierungsdatei.Den compiler, es spielt wirklich keine Rolle. Sie konnte nur werfen forward-Deklaration in Ihr .h und dann warten, bis
#import
bis Ihr .m-Datei. Sehen diese post auf SO für mehr info auf das.Aus einer clean-code prospektive, manche mögen argumentieren, dass die Inbetriebnahme der Importe in Ihrer Umsetzung-Datei behält die details näher an, wo Sie benötigt werden (siehe link oben; die Leute dort Verweis auf diese Idee).
Ist es empfehlenswert, dass der import anderer header-Dateien in Ihrem header-Datei. So können Sie die Klasse in den Kopf und die Umsetzung Dateien (weil der Implementierungs-Datei (.m) Einfuhren seine zugehörigen header-Datei).
Wenn Sie wissen wollen, Wann der import-Dateien und bei Verwendung von forward-Deklaration der Klasse, die Sie gehen können hier. 😉