Se si desidera solo per caricare la versione del modello che è compatibile con un particolare negozio prova esistente:
NSError *error = nil;
NSDictionary *storeMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType
URL:storeURL
error:&error];
NSManagedObjectModel *oldManagedObjectModel = [NSManagedObjectModel mergedModelFromBundles:[NSArray arrayWithObject:[NSBundle mainBundle]]
forStoreMetadata:storeMetadata];
Si noti che se si utilizza la versione XCode identificatori per le versioni del modello dei dati, la versione corrente del negozio permanente gli identificatori sono accessibili tramite la voce NSStoreModelVersionIdentifiersKey nel dizionario dei metadati del negozio.
Per quanto riguarda il caricamento di una particolare versione arbitraria, i file mom si trovano in genere nella directory momd nel bundle dell'app, quindi è possibile enumerarli utilizzando NSFileManager. Credo di trovarne uno con un identificatore di versione particolare che dovresti usare initWithContentsOfURL di NSManagedObjectModel: inizializzatore e poi ispezionare la proprietà versionIdentifiers, o usare isConfiguration: compatibleWithStoreMetadata: metodo di istanza per determinare la compatibilità.
fonte
2012-09-05 15:46:57
fyi sulla mia versione (7.1) la versione .mom (s) sono in un file con lo stesso nome della versione (quindi @ "... /% @", versione anziché @ "/.../ AppModel% @ ", versione) –