Hvad er M-filformatet?
.m er et almindeligt tekstfilformat, der bruges til at gemme kildekode skrevet i programmeringssproget Objective-C. En tæt beslægtet filtype, .mm, understøtter Objective-C blandet med C++ (Objective-C++). .m-filer findes ofte på Mac- eller Windows-maskiner, der bruges til udvikling af macOS- og iOS-applikationer. Hver .m-implementeringsfil parres med en tilhørende .h-header med samme navn, som indeholder klassegrænseflade-erklæringerne.
Objective-C er et programmeringssprog, der tilføjer objektorienterede funktioner til C-sproget. Objective-C bruger Cocoa- og Cocoa Touch-frameworks og bruges hovedsageligt til at skrive apps til Apple-enheder. I modsætning til C++ er Objective-C en streng overbygning af ANSI C. En .m-fil begynder typisk med #import-direktiver (f.eks. #import <Foundation/Foundation.h>) og indeholder @implementation ... @end-blokke, der definerer en klasses metoder. Siden 2011 har Automatic Reference Counting (ARC) automatiseret hukommelseshåndtering, hvilket fjerner behovet for manuelle retain- og release-kald. .m-filer kompileres af clang inde i Xcode. Siden Apple introducerede Swift i 2014, er Objective-C ikke længere standarden for nye projekter, men .m-filer er stadig udbredte i ældre kodebaser og i blandet Swift/Objective-C-arbejde.
Sikkerhed og tryghed
RISIKO: LOWEn .m-fil er ren kildekode - den gør intet, før den er kompileret og kørt, så selve filen er lavrisiko. De normale forholdsregler for kildekode gælder: læs den før du bygger, da kompilering og eksekvering af ukendt kode kan gøre alt, hvad det resulterende program har tilladelse til, og kildekode fra upålidelige lagre kan skjule ondsindet logik. Der er ingen makro- eller auto-eksekveringsmekanisme i en .m-fil blot ved at åbne den i en editor. (Hvis .m-filen viser sig at være MATLAB frem for Objective-C, gælder samme råd - kør ikke scripts, du ikke har tillid til.)
Formatdetaljer
kort fortalt- MATLAB script / funktionsfil (.m) - Almindelig tekst MATLAB-kode - scripts og funktioner til MathWorks MATLAB/Octave; den mest almindelige .m-fil i videnskabelig/ingeniørmæssig brug, et helt andet sprog.
- Wolfram Mathematica-pakke (.m) - En Wolfram Language-pakke/kildekodefil (ses også som .wl), der indeholder definitioner og åbnes af Mathematica.
- Maple input/.m biblioteksfil - Maple bruger .m til sine interne (ofte binære) biblioteks-/gemmefiler og Maple-inputkode.
Programmer der åbner M-filer
Tekniske detaljer
dyb specifikation| Filtype | Almindelig tekstkildekode (ingen binær komponent) |
| MIME-type | text/x-objcsrc (accepteres også som text/plain) |
| Tegnkodning | UTF-8 eller ASCII-kompatibel; historisk også Mac Roman eller Latin-1 |
| Filsignatur (magic bytes) | Ingen - identificeres kun via .m-filtypen; ren tekst uden binær header |
| Typisk filstruktur | #import-direktiver efterfulgt af en eller flere @implementation ... @end-blokke |
| Tilhørende header-fil | .h-fil med samme navn indeholder klassegrænsefladen (@interface ... @end) |
| Vigtige syntaks-tokens | @implementation, @end, @property, @synthesize, #import, - (returnType)methodName |
| Compiler | clang (LLVM); historisk gcc før Apple skiftede i 2012 |
| Hukommelseshåndteringsmodel | Manual Reference Counting (MRC) eller Automatic Reference Counting (ARC, siden Xcode 4.2 / 2011) |
| Tilknyttede frameworks | Cocoa (macOS), Cocoa Touch (iOS/iPadOS) |
| Typisk filstørrelse | Fra få hundrede bytes til flere hundrede KB kildetekst |
| Objective-C++ variant | .mm-filtype bruges, når Objective-C-kode skal fungere sammen med C++ |
| Tilknyttede platforme | macOS, iOS, iPadOS (primær); GNUstep muliggør brug på Linux og Windows |
| IDE og build-værktøjer | Apple Xcode (primær IDE); clang og xcodebuild bruges også fra kommandolinjen |
| Udgivet | Objective-C language 1984; .m as the standard implementation-file extension since the NeXTSTEP era (late 1980s) |
| Seneste version | Objective-C 2.0 (2006, Mac OS X 10.5); language is stable, now largely supplanted by Swift |
| Åben standard | Ja · royaltyfri |
| Specifikation | developer.apple.com |
M-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om M-filer.