Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 正在迁移,但仍在';RLMEException';,原因:';需要迁移 -(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{ //王国,第1件事 { RLMRealmConfiguration*config=[RLMRealmConfiguration defaultConfiguration]; config.schemaVersion=2; config.migrationBlock=^(RLMMiglation*迁移,uint64\u t旧模式){ }; config.objectClasses=@[[User class],[UsersMenuItem class]]; [RLMRealm migrateRealm:config]; } ... }_Ios_Objective C_Realm_Realm Migration - Fatal编程技术网

Ios 正在迁移,但仍在';RLMEException';,原因:';需要迁移 -(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{ //王国,第1件事 { RLMRealmConfiguration*config=[RLMRealmConfiguration defaultConfiguration]; config.schemaVersion=2; config.migrationBlock=^(RLMMiglation*迁移,uint64\u t旧模式){ }; config.objectClasses=@[[User class],[UsersMenuItem class]]; [RLMRealm migrateRealm:config]; } ... }

Ios 正在迁移,但仍在';RLMEException';,原因:';需要迁移 -(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{ //王国,第1件事 { RLMRealmConfiguration*config=[RLMRealmConfiguration defaultConfiguration]; config.schemaVersion=2; config.migrationBlock=^(RLMMiglation*迁移,uint64\u t旧模式){ }; config.objectClasses=@[[User class],[UsersMenuItem class]]; [RLMRealm migrateRealm:config]; } ... },ios,objective-c,realm,realm-migration,Ios,Objective C,Realm,Realm Migration,我确实向用户对象添加了一个属性,docu说新领域应该自动迁移,但我遇到了一个崩溃 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Realm, 1th thing { RLMRealmConfiguration *config = [RLMRealmConfiguration defa

我确实向用户对象添加了一个属性,docu说新领域应该自动迁移,但我遇到了一个崩溃

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Realm, 1th thing { RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration]; config.schemaVersion = 2; config.migrationBlock = ^(RLMMigration *migration, uint64_t oldSchemaVersion) { }; config.objectClasses = @[[User class], [UsersMenuItem class]]; [RLMRealm migrateRealm:config]; } ... } ***由于未捕获的异常“RLMException”而终止应用程序,原因:“由于以下错误,需要对对象类型“User”进行迁移: -属性“realtedMenuItems”已添加到最新的对象模型中 ***第一次抛出调用堆栈: (0x1838ad900 0x182f1bf80 0x10015db3c 0x10014aa60 0x100149a70 0x100116500X1000A6488 0x1000f1664 0x1885a00c0 0x18859fcc4 0x1000039568 0x188615704 0x188844130 0x1888484b8 0x1888455c0 0x184e63790 0x184e63b10 0x183864efc 0x183864990 0x183862690 0x183862690 0x183791680 0x1886088D90 0x1000b7430 0x1833328b8) libc++abi.dylib:以NSException类型的未捕获异常终止 版本:0.95

注意:当我更新到0.96时,我得到

*** Terminating app due to uncaught exception 'RLMException', reason: 'Migration is required for object type 'User' due to the following errors: - Property 'realtedMenuItems' has been added to latest object model.' *** First throw call stack: (0x1838ad900 0x182f1bf80 0x10015db3c 0x10014aa60 0x100149a70 0x100116500 0x1000a6488 0x1000f1664 0x1885a00c0 0x18859fcc4 0x100039568 0x188615704 0x188844130 0x1888484b8 0x1888455c0 0x184e63790 0x184e63b10 0x183864efc 0x183864990 0x183862690 0x183791680 0x18860e580 0x188608d90 0x1000b7430 0x1833328b8) libc++abi.dylib: terminating with uncaught exception of type NSException ***由于未捕获的异常“RLMEException”而终止应用程序,原因:“提供的架构版本0小于上次设置的版本3。” ***第一次抛出调用堆栈: 看起来像是在添加

*** Terminating app due to uncaught exception 'RLMException', reason: 'Provided schema version 0 is less than last set version 3.' *** First throw call stack: 解决了这个问题,但不确定原因

[RLMRealmConfiguration setDefaultConfiguration:config];

RLMRealmConfiguration
充当值对象。应用于它的修改不会自动对
defaultConfiguration
生效。您只能检索它的一个副本。这意味着您必须使用setter来共享您的修改。

此时,您在域中存储了大量数据吗?因为如果您只是在测试,您可以执行清理并重置模拟器来修复此问题。我需要迁移来对现有应用程序更新执行:(因此调用[RLMRealmConfiguration setDefaultConfiguration:config];?是这样吗?这应该在迁移之前还是之后进行?这无关紧要。迁移方法使用提供的配置,而
defaultRealm
使用默认配置。但您根本不必使用迁移方法。如果不调用它,则在创建时将在稍后隐式迁移您的领域第一个Realm instance.nope,它在没有使用migrateRealm的情况下崩溃了,但我应该迁移…所以我做了上面的操作,添加了setDefaultConfiguration,它可以工作,但是您之前没有修改默认配置,也没有设置迁移块和新的架构版本?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Realm
    {
        RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
        config.schemaVersion = 4;
        config.migrationBlock = ^(RLMMigration *migration, uint64_t oldSchemaVersion) {

        };
        NSError * error = [RLMRealm migrateRealm:config];
        if (error) {
            NSLog(@"Error migrating realm %@", error);
        }
        [RLMRealmConfiguration setDefaultConfiguration:config];
    }