0

我在应用程序升级场景中遇到崩溃。它给出以下错误和警告。但是这个问题只有在我安装了 AppStore 构建并且在此之上我安装了我的新 testflight 构建时才会发生。如果我在 AppStore 构建上安装开发人员构建,则它可以正常工作。

错误:

[__NSArrayM UTF8String]:发送到实例的无法识别的选择器

警告:一个 RLMRealm 实例在写事务期间被释放,所有挂起的更改都已回滚。确保在写事务期间保留对 RLMRealm 的引用。

当您点击应用程序图标时,它会立即崩溃,因此,我没有任何堆栈跟踪。

领域版本:0.96.3 & Xcode 版本:7.3

下面是我的迁移代码。

RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
    config.schemaVersion = 3;

    if (oldSchemaVersion < 2)
    {
        [migration enumerateObjects:DB_Class1.className
                              block:^(RLMObject *oldObject, RLMObject *newObject) {
                                  newObject[@"thisIsArray_1"] = nil;
                              }];
        [migration enumerateObjects:DB_Class2.className
                              block:^(RLMObject *oldObject, RLMObject *newObject) {
                                  newObject[@"thisIsInt_1"] = 0;
                                  newObject[@"thisIsInt_2"] = 0;
                                  newObject[@"thisIsInt_3"] = 0;
                              }];            
    }

以上所有内容newObjects仅在此版本中添加。

更新 1:我可以看到deleteRealmIfMigrationNeededandroid。iOS中是否有任何等价物?我只发现deleteAllObjects。如果是这样,那么我可以简单地删除我的旧领域数据并保存新的。

谢谢。

4

1 回答 1

1

Realm Cocoa在 0.102.0 版本中添加了deleteRealmIfMigrationNeeded选项 (on )。RLMRealmConfiguration这应该允许您回避迁移问题。请参阅此处的更改说明。

于 2016-05-17T21:20:22.320 回答