【Realm Swift】Attempting to create an object of type ‘○○Model’ with an existing primary key value ‘000000000000000000000000’の対処法

Realmに値の登録処理を実装しようとした際、下記エラーメッセージに遭遇することがあります。

Attempting to create an object of type '○○Model' with an existing primary key value '000000000000000000000000'

上記エラーを翻訳すると下記になります。

既存の主キー値「000000000000000000000000」を持つタイプ「○○モデル」のオブジェクトを作成しようとしています

つまり、プライマリーの重複エラーとなります.

スポンサーリンク

なぜ、重複エラーが発生しているのか分からないの対処法

オブジェクトIDの生成ミス

下記のように、イニシャライザを使用して生成した場合、結果は000000000000000000000000が生成されます。つまり、下記方法では一意にオブジェクトIDを生成することは出来ません

let objectId = ObjectId()

オブジェクトIDの生成方法

下記方法では、一意のオブジェクトIDを生成することが可能です。

ObjectIdとなります。

let objectId = ObjectId.generate()

String(文字列)型で受け取る方法

stringValueを使うことで文字列で受け取ることが可能です。

let objectId = ObjectId.generate()
let objectIdString = objectId.stringValue // 文字列型に変換

コメント

タイトルとURLをコピーしました