Warum verwenden Objective-C-Dateien die Erweiterung .m?


204

Seit ich Objective-C und Cocoa gelernt habe, habe ich mich gefragt, warum sie die Erweiterung .m für die Implementierungsdateien gewählt haben - sollte das etwas bedeuten oder war es nur ein zufälliger Buchstabe?


12
Es ist für die em zu.
Dreamlax

2
Ich denke, das hat jemand anderen gestört, also haben sie ein bisschen recherchiert und widersprüchliche Beweise für die Bedeutung der .m-Erweiterung gefunden. Letztendlich steht es für Nachrichten. Für die vollständige Lektüre: pempek.net/blog/2013/11/30/objective-c-file-extension/…
John Riselvato

.mDateien sind Implementierungsdateien, wie Sie sagten. Das Wissen von Apple mag an Präfix alles mit ist ies leicht zu sehen , dass ich UMSETZUNG wird UMSETZUNG ohne sagte i. Dann haben sie nur den ersten Implementierungsbuchstaben für die Dateierweiterung verwendet : m.
Daniel

Antworten:


465

Heutzutage würden die meisten Leute sie als "Methodendateien" bezeichnen, aber

„Die .m Erweiterung steht ursprünglich für“ m essages „ wenn Objective-C zuerst eingeführt wurde, unter Bezugnahme auf ein zentrales Merkmal von Objective-C [...]“

(aus dem Buch " Learn Objective-C on the Mac " von Mark Dalrymple und Scott Knaster, Seite 9)

EDIT: Um einen Juckreiz zu stillen, schickte ich Brad Cox , dem Erfinder von Objective-C, eine E-Mail über die Frage und er antwortete mit dieser einzigen Zeile:

"Weil .o und .c genommen wurden. So einfach ist das."

Hier ist die E-Mail als visueller Beweis:

Visueller Beweis


115
Sie haben sich die Mühe gemacht, Brad Cox eine E-Mail zu senden, um dies herauszufinden! Du großartige, großartige Person.
Chironex

15
Klingt, als hätte er einen Witz gemacht. Wenn o und c genommen wurden, warum m und kein anderer verfügbarer Buchstabe? Obwohl ich denke, dass es eine lustige Antwort ist, fällt es mir auch schwer zu glauben, dass sie einfach aus einem Hut gezogen wurde und er keine Logik bei der Auswahl von m verwendet hat.
Prototyp

2
Ich bin damit einverstanden, dass er wahrscheinlich scherzte, aber wahrscheinlich etwas ironisch. .m war wahrscheinlich für Methode oder Messaging, wurde aber auch nur verwendet, weil .o und .c bereits verwendet wurden.
Bigtunacan

10
Ich wünschte, Brad hätte die Frage tatsächlich beantwortet, anstatt nur zu erklären, warum .o und .c nicht verwendet wurden. Zumindest
wirft

1
@INTPnerd Er hat es mehr oder weniger beantwortet. Es scheint mir , dass „.m“ wurde zuerst etwas aus der Notwendigkeit gewählt andere als „.o“ oder „.c“ und zweitens , weil es irgendwelcher / aller verstanden werden konnte m ethoden, m essages, ich bin Umsetzung.
Slipp D. Thompson

8

Es steht für "Methoden". Aus den häufig gestellten Fragen zu comp.lang.objective-C :

Die Organisation der Objective-C-Quelle ähnelt normalerweise der des C- oder C ++ - Quellcodes, wobei Deklarationen und Objektschnittstellen in Headerdateien mit der Erweiterung .h und Definitionen und Objektimplementierungen in Dateien mit der Bezeichnung .m (kurz) gespeichert werden für Methoden ) Erweiterung.


5

.m-Dateien enthalten die (m) Methoden. Möglicher Grund?


4
m Dateien können auch (m) eine Vielzahl von Kommentaren enthalten! go figure :)
NeverStopLearning

-3

Wilde Vermutung: 1983 wurde ObjectC zusammen mit dem ersten Macintosh-Computer eingeführt. Es kann also m wie bei Macintosh oder m wie bei Methoden oder sogar beides sein.


4
Objective-C hatte ursprünglich nichts mit dem Macintosh zu tun. Außerdem wurde die richtige Antwort bereits vor Jahren veröffentlicht.
Johan Halin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.