Hvad er MOM-filformatet?
En .mom-fil er en kompileret Core Data-model produceret af Xcode under build-processen. Når en udvikler designer et dataskema i .xcdatamodeld-kilderedigeringen, kompilerer Xcode det design til en binær .mom (Managed Object Model) fil, der leveres inde i applikationspakken og indlæses ved kørsel af NSManagedObjectModel.
Strukturelt set er en .mom en Apple binær egenskabsliste (property list), der begynder med de magiske bytes bplist00, som koder entiteter, attributter, relationer, skabeloner til hentningsanmodninger og modelkonfigurationer, der definerer appens Core Data-skema. Den beskriver databasestrukturen - ikke selve dataene.
For versionerede skemaer bygger Xcode en .momd-pakke - en mappe, der indeholder én .mom-fil pr. skemaversion plus en VersionInfo.plist, der registrerer versions-hashes pr. entitet. Core Data sammenligner disse hashes ved opstart for at beslutte, om letvægtsmigrering er mulig, eller om en tungvægtsmigrerings-mappingmodel er nødvendig.
Udviklere redigerer aldrig en .mom direkte; .xcdatamodeld-kildefilen er den artefakt, man skal arbejde med. .mom er udelukkende et build-produkt - manuel ændring af den ville korrumpere modellen. Apple-platforme, der bruger Core Data, inkluderer macOS, iOS, iPadOS, tvOS og watchOS.
En nyere mulighed, SwiftData (introduceret i 2023), bygger internt på Core Data, men eksponerer et Swift-makrobaseret API, der skjuler .mom-filer helt for udvikleren. For apps, der stadig er målrettet ældre OS-versioner, forbliver .xcdatamodeld → .mom-pipelinen aktuel.
Sikkerhed og tryghed
RISIKO: LOWEn .mom er en passiv build-artefakt (en egenskabsliste over skemadefinitioner) og er ikke eksekverbar, så den udgør minimal risiko. Den eksponerer en apps dataskema, men ingen brugerdata. Den eneste forsigtighedsregel er den sædvanlige for ukendte filer: inspicer med plutil i stedet for at køre noget. Undgå «MOM file opener»-downloadsteder - de rigtige værktøjer (Xcode, plutil) er gratis fra Apple.
Formatdetaljer
kort fortaltProgrammer der åbner MOM-filer
plutil -p file.mom i Terminal eller enhver bplist-fremviser) for at inspicere dens serialiserede indhold. plutil -p path/to/Model.mom for at udskrive den kompilerede model som læsbar tekst. Tekniske detaljer
dyb specifikation| Filtype | Kompileret Apple binær egenskabsliste (bplist) |
| Magic bytes | bplist00 (62 70 6C 69 73 74 30 30) ved offset 0 |
| Udvikler | Apple Inc. |
| Kodning | Binær (Apple bplist-serialisering) |
| Typisk filstørrelse | Få KB til et par hundrede KB (skemabeskrivelse, ikke app-data) |
| Indhold | Serialiseret NSManagedObjectModel - entiteter, attributter, relationer, skabeloner til hentningsanmodninger og konfigurationer |
| Build-artefakt | Kompileret af Xcode fra en .xcdatamodeld-kilde; ikke beregnet til manuel redigering |
| Versioneret pakke | .momd-mappe indeholdende én .mom pr. skemaversion plus VersionInfo.plist med versions-hashes pr. entitet |
| Optimeret variant | .omo (optimized managed object model) - genereret af Xcode for hurtigere indlæsning ved kørsel |
| Migreringsstøtte | Versions-hashes pr. entitet i VersionInfo.plist driver letvægts- og tungvægts Core Data-migrering |
| Indlæsning ved kørsel | Indlæses via NSManagedObjectModel API; driver NSPersistentStoreCoordinator og NSManagedObjectContext |
| Associerede platforme | macOS, iOS, iPadOS, tvOS, watchOS |
| Moderne alternativ | SwiftData (2023) bygger på Core Data, men skjuler .mom-filer bag et Swift-makrobaseret API |
| Udgivet | Core Data, introduced with Mac OS X 10.4 Tiger (2005); built on the earlier Enterprise Objects Framework |
| Seneste version | Tracks the current Xcode / Core Data tooling (versioned models compile to .momd directories) |
| Specifikation | developer.apple.com |
MOM-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MOM-filer.
Ofte stillede spørgsmål
Hvad er en .mom-fil på min Mac?
Hvordan åbner jeg en .mom-fil?
plutil -p file.mom i Terminal.