¿Qué es el formato de archivo M?
.m es un formato de archivo de texto plano utilizado para almacenar código fuente escrito en el lenguaje de programación Objective-C. Una extensión estrechamente relacionada, .mm, admite Objective-C mezclado con C++ (Objective-C++). Los archivos .m se encuentran comúnmente en máquinas Mac o Windows utilizadas para desarrollar aplicaciones de macOS e iOS. Cada archivo de implementación .m se empareja con un encabezado .h complementario del mismo nombre base, que contiene las declaraciones de la interfaz de la clase.
Objective-C es un lenguaje de programación que añade capacidades orientadas a objetos al lenguaje C. Objective-C utiliza los frameworks Cocoa y Cocoa Touch y se usa principalmente para escribir aplicaciones para dispositivos Apple. A diferencia de C++, Objective-C es un superconjunto estricto de ANSI C. Un archivo .m suele comenzar con directivas #import (por ejemplo, #import <Foundation/Foundation.h>) y contiene bloques @implementation ... @end que definen los métodos de una clase. Desde 2011, el Conteo Automático de Referencias (ARC) automatiza la gestión de memoria, eliminando la necesidad de llamadas manuales a retain y release. Los archivos .m son compilados por clang dentro de Xcode. Desde que Apple introdujo Swift en 2014, Objective-C ya no es el estándar para proyectos nuevos, pero los archivos .m siguen estando muy extendidos en bases de código heredadas y en trabajos mixtos de Swift/Objective-C.
Seguridad y protección
RIESGO: LOWUn archivo .m es código fuente puro - no hace nada hasta que se compila y se ejecuta, por lo que el archivo en sí es de bajo riesgo. Se aplican las precauciones normales para el código fuente: léalo antes de compilarlo, ya que compilar y ejecutar código desconocido puede realizar cualquier acción que el programa resultante tenga permitida, y el código de repositorios no confiables puede ocultar lógica maliciosa. No existe un mecanismo de macro o autoejecución en un archivo .m por el mero hecho de abrirlo en un editor. (Si el .m resulta ser de MATLAB en lugar de Objective-C, se aplica el mismo consejo: no ejecute scripts no confiables).
Detalles del formato
en pocas palabras- Script de MATLAB / archivo de función (.m) - Código MATLAB en texto plano - scripts y funciones para MathWorks MATLAB/Octave; el archivo .m más común en uso científico/ingeniería, un lenguaje totalmente diferente.
- Paquete de Wolfram Mathematica (.m) - Un archivo de paquete/fuente de Wolfram Language (también visto como .wl) que contiene definiciones, abierto por Mathematica.
- Archivo de biblioteca/entrada de Maple (.m) - Maple utiliza .m para sus archivos de biblioteca/guardado internos (a menudo binarios) y código de entrada de Maple.
Programas que abren archivos M
Detalles técnicos
especificación profunda| Tipo de archivo | Código fuente de texto plano (sin componente binario) |
| Tipo MIME | text/x-objcsrc (también aceptado como text/plain) |
| Codificación de caracteres | UTF-8 o compatible con ASCII; históricamente también Mac Roman o Latin-1 |
| Firma de archivo (magic bytes) | Ninguna - identificado solo por la extensión .m; texto plano sin encabezado binario |
| Estructura típica del archivo | Directivas #import seguidas de uno o más bloques @implementation ... @end |
| Archivo de encabezado complementario | El archivo .h con el mismo nombre base contiene la interfaz de la clase (@interface ... @end) |
| Tokens de sintaxis clave | @implementation, @end, @property, @synthesize, #import, - (returnType)methodName |
| Compilador | clang (LLVM); históricamente gcc antes de que Apple cambiara en 2012 |
| Modelo de gestión de memoria | Conteo Manual de Referencias (MRC) o Conteo Automático de Referencias (ARC, desde Xcode 4.2 / 2011) |
| Frameworks asociados | Cocoa (macOS), Cocoa Touch (iOS/iPadOS) |
| Tamaño típico del archivo | Desde unos pocos cientos de bytes hasta varios cientos de KB de texto fuente |
| Variante de Objective-C++ | Extensión .mm utilizada cuando el código Objective-C debe interoperar con C++ |
| Plataformas asociadas | macOS, iOS, iPadOS (principal); GNUstep permite su uso en Linux y Windows |
| IDE y herramientas de construcción | Apple Xcode (IDE principal); clang y xcodebuild también se utilizan desde la línea de comandos |
| Lanzado | Objective-C language 1984; .m as the standard implementation-file extension since the NeXTSTEP era (late 1980s) |
| Última versión | Objective-C 2.0 (2006, Mac OS X 10.5); language is stable, now largely supplanted by Swift |
| Estándar abierto | Sí · libre de regalías |
| Especificación | developer.apple.com |
Conversiones de M
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos M.