2013-11-01 20 views
1

我试图从json文件填充我的iOS sqlite数据库。我已经使用python编写了一个脚本来执行此操作,它读取了json文件和coredata Model.xcdatamodeld文件。使用mogenerator,它创建必要的H和M的文件,并写入信息到如下一个源码文件(下面是用于生成源码文件中的代码的一部分)用来工作从json使用python生成sqlite创建了sqlite-shm和sqlite-wal文件

psc = NSPersistentStoreCoordinator.alloc().initWithManagedObjectModel_(mom) 
psc_option = { 
    NSMigratePersistentStoresAutomaticallyOption : True, 
    NSInferMappingModelAutomaticallyOption : True, 
} 
psc.addPersistentStoreWithType_configuration_URL_options_error_(NSSQLiteStoreType, None, dataURL, psc_option, None) 
moc = NSManagedObjectContext.new() 
moc.setPersistentStoreCoordinator_(psc) 

一切,但之后,我升级到Maverick,输出文件生成2个额外的文件(.sqlite-shm和.sqlite-wal)。输出sqlite文件似乎是空的(即使脚本成功解释了coredata文件和json文件)。我只是想知道是否有人知道这些文件是什么?以及有关可能导致此问题的任何建议? (我怀疑有些行为在保存期间必须改变,但我不确定)。

回答

2

苹果已经改变了默认的日记模式,以作为Configuring a SQLite Store’s Save Behavior

或许本网站文章可能更澄清Core Data and iOS 7: Different behavior of persistent store

描述由passing the associated SQLite pragma options to NSPersistentStoreCordinator. 看它的完成WAL模式(SQLite Write-Ahead Logging): Problems with Core Data Migration Manager and journal_mode WAL

+0

任何想法如何改回它?我只是想让代码运行,我并不在乎性能...... – hook38

+0

我已经添加了更多资源。 – PositiveLogic

+0

作品,谢谢你。 – hook38