realmオブジェクトのクラス名である文字列に基づいてrealmオブジェクトをインスタンス化することは可能ですが、提供されるまでその文字列がどのようになるかは分かりません。 。例えばrealmオブジェクトをswiftでstringから取得する3
:
ここfor(_, object) in json["AllObjects"]{
let objectType = self.getRealmObjectBasedOnString(type: className, params: object.stringValue)
self.objectList.append(objectType)
}
私は私が得るJSONを通過し、アレイ内の各JSONオブジェクトからレルムオブジェクトを作成したいです。問題は、このメソッドが複数回呼び出され、変更されるたびにclassName変数のみが呼び出されることです。ですから、私は同じロジックを持ついくつかのメソッドを作成する代わりにこのロジックを1つのメソッドに保持したいと思います。作成するレルムオブジェクトを決定する巨大で複雑なif else。ここで
は、これが機能し、私が欲しいものを達成することが可能であるかどうかしない理由を誰かが説明できますか?
func getRealmObjectBasedOnString(type: String, params: String) -> Object{
switch type {
case "classA":
return ClassA(JSONString: params)!
case "classB":
return ClassB(JSONString: params)!
default:
return DefaultClass(JSONString: params)!
}
}
をgetRealmObjectBasedOnStringされますか
私はあなたが達成したいと誤解したと思います。私はすでに持っているタイプの領域オブジェクトを取得しないでください、私は新しいものを作成したいです。だから私は文字列 "ClassA"を送信する場合、私は領域に保存することができますClassAオブジェクトのインスタンスを取得したいと思います。 – Filipe
次に、['create(_:value:update:)'](https://realm.io/docs/swift/2.5.1/api/Classes/Realm.html#/s:FC10RealmSwift5Realm6createuRxCS_6ObjectrFTMx5valueP_6updateSb_x)を使用するだけです。 – Dmitry
それは私が欲しかったものです!私はちょうどforループで送られたものからjsonオブジェクトを作り直す必要がありました。それはそれです。ありがとう:D – Filipe