Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 7th, 2012  |  syntax: None  |  size: 1.52 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Core Data Migration: How to delete the Core Data stack?
  2. NSURL *storeURL = ...;
  3. NSManagedObjectModel *managedObjectModel = ...;
  4. NSError *error = nil;
  5. _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: managedObjectModel];
  6.  
  7. // Check if we already have a persistent store
  8. if ( [[NSFileManager defaultManager] fileExistsAtPath: [storeURL path]] ) {
  9.     NSDictionary *existingPersistentStoreMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType: NSSQLiteStoreType URL: storeURL error: &error];
  10.     if ( !existingPersistentStoreMetadata ) {
  11.         // Something *really* bad has happened to the persistent store
  12.         [NSException raise: NSInternalInconsistencyException format: @"Failed to read metadata for persistent store %@: %@", storeURL, error];
  13.     }
  14.  
  15.     if ( ![managedObjectModel isConfiguration: nil compatibleWithStoreMetadata: existingPersistentStoreMetadata] ) {
  16.         if ( ![[NSFileManager defaultManager] removeItemAtURL: storeURL error: &error] )
  17.             NSLog(@"*** Could not delete persistent store, %@", error);
  18.     } // else the existing persistent store is compatible with the current model - nice!
  19. } // else no database file yet
  20.  
  21. [_persistentStoreCoordinator addPersistentStoreWithType: NSSQLiteStoreType
  22.                                           configuration: nil
  23.                                                     URL: storeURL
  24.                                                 options: nil
  25.                                                   error: &error];