NSPersistentStoreCoordinator addPersistentStoreWithType:没有journal_mode iOS 9的方法错误

时间:2015-09-17 11:32:22

标签: core-data ios9 persistent journal

我正在使用iOS9检查我的应用程序。

尝试重置数据库时出现问题。

请参阅以下代码:(在AppDelegate

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
   if(persistentStoreCoordinator == nil)
   {
       ....
       ....
       persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

       [persistentStoreCoordinator lock];

        if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
        {     
        }

        [persistentStoreCoordinator unlock];
   }

   return persistentStoreCoordinator;
}

这里的选项是..

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,nil];

此代码适用于iOS8及以下版本。但是当我用iOS9运行时, 发生以下异常。

  

CoreData:错误:-addPersistentStoreWithType:SQLite   配置:(空)   网址:文件:/// VAR /移动/集装箱/数据/应用/ ... .sqlite   选项:{NSInferMappingModelAutomaticallyOption = 1;   NSMigratePersistentStoresAutomaticallyOption = 1; } ... 回   error Error Domain = NSCocoaErrorDomain Code = 522"(null)"   UserInfo = {NSUnderlyingException =数据库的I / O错误   /var/mobile/Containers/Data/Application/....sqlite。 SQLite错误   代码:522,'不是错误',NSSQLiteErrorDomain = 522} with userInfo   字典{NSSQLiteErrorDomain = 522; NSUnderlyingException =" I / O.   数据库的错误   /var/mobile/Containers/Data/Application/....*.sqlite。 SQLite错误   代码:522,'不是错误'&#34 ;; }

但是,如果我在现有" 选项中添加键值对"journal_mode" = "MEMORY" "字典,这个错误没有发生。

问题:

" journal_mode"选项词典中的意思?这是我案中的真正问题吗?

1 个答案:

答案 0 :(得分:2)

所以我没有足够的声望点来评论你的帖子。但是,您需要了解journal_mode的大部分内容here

如果我的观点很重要,我永远不会使用MEMORY,它只会吓到我。

我建议使用DELETEWAN。这两个都消除了您所看到的错误,使用起来似乎更安全,而不是使用MEMORY