前提・実現したいこと
以下のようなJSONデータをRealmにマッピングしたいのですが、BADACCESSが発生してクラッシュしてしまいます。
どなたか解決方法をご存じないでしょうか?
JSON
1{ 2 "id": 1, 3 "name":{"ja":"北海道"}, 4 "areas":{"ja":"函館"} 5}
発生している問題・エラーメッセージ
RealmSwift.Object.getOptionalPropertyMetadata
内のMirror
の生成でBADACCESSが発生してしまいます。
該当のソースコード
マッピングにはJSONDecoderを使い、RealmSwift.Objectを継承したクラスにはCodableを追加しています。
Swift
1// RealmObject 2class Region: Object, Codable { 3 @objc dynamic var id: Int = 0 4 @objc dynamic var name: LocalizeText 5 @objc dynamic var areas: LocalizeText 6 7 private enum CodingKeys: String, CodingKey { 8 case id 9 case name 10 case areas 11 } 12 13 override static func primaryKey() -> String? { 14 return "id" 15 } 16} 17 18class LocalizeText: Object, Codable { 19 @objc dynamic var ja: String? 20 @objc dynamic var en: String? 21 22 private enum CodingKeys: String, CodingKey { 23 case ja 24 case en 25 } 26} 27 28// Mapping 29let region = try JSONDecoder().decode(Region.self, from: json.data)
試したこと
name
の内を{...}
から[{...}]
に変更し、Region
のname
,areas
をList<LocalizeText>
で定義するとマッピング可能でした
補足情報(FW/ツールのバージョンなど)
RealmSwift 3.17.3
Swift 5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/05 00:41