gpt4 book ai didi

ios - Realm :获取-[__NSArrayM UTF8String]:发送到实例的无法识别的选择器

转载 作者:行者123 更新时间:2023-11-29 00:59:22 25 4
gpt4 key购买 nike

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

错误:

[__NSArrayM UTF8String]: unrecognized selector sent to instance

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

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

Realm 版本: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:我可以看到适用于 android 的 deleteRealmIfMigrationNeeded。 iOS 中是否有等效项?我只找到了 deleteAllObjects。如果是这样,那么我可以简单地删除我的旧 Realm 数据并保存新数据。

谢谢。

最佳答案

Realm Cocoa 在 0.102.0 版本中添加了 deleteRealmIfMigrationNeeded 选项(在 RLMRealmConfiguration 上)。这应该可以让您回避迁移问题。请参阅更改说明here .

关于ios - Realm :获取-[__NSArrayM UTF8String]:发送到实例的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com