Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > iOS > Не сохраняются данные в базе sqlLite (Core Data)


Автор: TechnoMag 30.9.2014, 09:24
Создал приложение http://www.raywenderlich.com/ru/35205/core-data-%D0%B2-ios-5-%D0%A1-%D1%87%D0%B5%D0%B3%D0%BE-%D0%BD%D0%B0%D1%87%D0%B0%D1%82%D1%8C.
При запуске приложения создаются таблицы в соотвествии с моделью, но данные не сохраняются.
Как я понял данные должны сохраняться при выполнении кода:

Код

[context save:&error];


но этого не происходит.
Почему? И как исправить?
В директории приложения кроме файла БД также создаются 2 файла:
.slite-shm и .slite-wal.
Как отключить создание этих файлов и писать в файл базы напрямую используя CoreData?

Автор: TechnoMag 30.9.2014, 12:36
http://stackoverflow.com/questions/18870387/core-data-and-ios-7-different-behavior-of-persistent-store/18870738#18870738

Код

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
  if (_persistentStoreCoordinator != nil) {
    return _persistentStoreCoordinator;
  }
  
  NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"myDB.sqlite"];
  
  NSError *error = nil;
  _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
  
  NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} }; // ***
  if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
    
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
  }
  
  return _persistentStoreCoordinator;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)