私はアプリケーションのアップグレードシナリオでクラッシュしています。以下にエラーと警告を示します。しかし、この問題はAppStoreビルドがインストールされていて、その上に新しいtestflightビルドをインストールしたときにのみ発生します。 AppStoreビルドで開発者ビルドをインストールすると、正常に動作します。レルム:Getting - [__ NSArrayM UTF8String]:インスタンスに送信された認識できないセレクタ
エラー:
[__NSArrayM UTF8String]: unrecognized selector sent to instance
警告:アン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:アンドロイド用にdeleteRealmIfMigrationNeeded
が表示されます。 iOSに同等のものはありますか?私はdeleteAllObjects
しか見つけませんでした。もしそうなら、私は単に古いレルムのデータを削除し、新しいレルムデータを保存することができます。
ありがとうございました。
これを参照してください。https://github.com/realm/realm-cocoa/issues/3422 –
@ Anbu.Karthik、はい、私は領域をアップグレードしましたが、解決できませんでした – JiteshW
エラーメッセージ'UTF8String'は、' NSArray'オブジェクトに期待される 'NSString'オブジェクトではなく – vadian