zoukankan      html  css  js  c++  java
  • CoreData的数据迁移

    CoreData的数据迁移

    很多人说CoreData坑多,现在才感觉到,今天上午写代码的时候,发现了一个大问题.

    过程如下,之前我自己给coredata的实体添加了几个字段,后来网上的一个用户说我们的app进去后闪退,但是我自己从新冲appstore下载了一个发现并没有哪些问题.于是这个事就过去了.第二天我run我自己的新程序的时候,发现coredata一保存在save方法的时候,就直接闪退.连错误都不报.导致我很崩溃... 网上一查,原来是要数据迁移.下面是我的一些记录,希望能帮助到别人.

    其实很多简单的情况,不用这么麻烦,Coredata提供了轻量级的自动数据迁移,比如以下三个情况会自动进行:

    1.简单的增加一个字段

    2.把一个必填字段改为可选字段

    3.把可选字段改为必填字段(但一定要定义默认值)

     

    1.升级数据库模型:选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel

    2.设置当前版本:选择上级mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model选择Current模版为mydata2(inspector界面,即为XCode工作区右侧工具栏)

    3.修改新数据模型mydata2,在新的文件上添加,修改或删除字段及表

    4.在程序启动时添加如下代码: 
    NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],
    NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES],
    NSInferMappingModelAutomaticallyOption, nil];
    
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
    configuration:nil
    URL:storeUrl
    options:optionsDictionary
    error:&error]) {
    NSLog(@”failed to add persistent store with type to persistent store coordinator”);
    }

    5.重启一下XCode

    参考文章:  升级app时coreData的处理及注意事项      使用CoreData的轻量级自动数据迁移    Working with Core Data: Schema Versioning and Lightweight Migrations    小结CoreData的Migration    coredata 数据迁移    CoreData数据迁移

  • 相关阅读:
    初賽
    SA
    高斯-约旦消元法
    AC自动机
    KMP
    关于scanf
    网络流
    常用SQL语句
    Java开发中的23种设计模式详解(转)
    generatorConfig.xml
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4261953.html
Copyright © 2011-2022 走看看