In C und Objective-C, haben Sie separate Schnittstelle (.h) und Implementierung (.c, .m-Dateien).
- Die Schnittstellendatei gibt einen schnellen Überblick über alle Methoden und Eigenschaften dieser Klasse, die auf anderen Code verfügbar sind (sofern sie die Schnittstellendatei importieren). Es ist wie der Kapitelindex eines Buches.
- Die Implementierung, auf der anderen Seite ist, wo der tatsächliche Methodencode geschrieben wird.
In Swift, auf der anderen Seite, gibt es keine solche Unterscheidung und Klassen sind auf alle Ihre Code automatisch zur Verfügung. Der Vorteil ist natürlich, dass die Anzahl der Quelldateien in Ihrem Projekt ungefähr halbiert ist und Sie nicht zwischen der Schnittstellendatei und der Implementierungsdatei hin- und herwechseln müssen (alles an einem Ort)).
Also, um das Fehlen einer "Interface-only" -Datei (wie die Header in C/Objective-C) auszugleichen, generiert Xcode einen "on the fly", nur um Ihnen die verfügbaren Methoden zu zeigen und Eigenschaften dieser Klasse. Sie werden feststellen, dass Methodenkörper fehlen, sowie Eigenschaften und Methoden, die als private
deklariert sind (weil sie außerhalb der Klasse nicht zugänglich sind und daher definitionsgemäß nicht Teil der "Schnittstelle" sind).
Es ist keine echte Datei, die sich irgendwo in Ihrem Dateisystem befindet (soweit ich weiß).
Interessant, so ist es wie eine Kurzzusammenfassung, die Sie wissen lässt, welche Methoden oder Eigenschaften Sie der Außenwelt (oder zwischen Projekten) ausgesetzt sind. Ich sehe dies als eine Killereigenschaft beim Erstellen von APIs/Frameworks, besonders weil Swift benötigt keine Schnittstellendateien. Vielen Dank für die Klärung. –