私はJSONを簡単にシリアル化するための拡張メソッドを書いておきたい次のクラスを持っています。Model extensionへのJSON
class Evaluation: Object {
var name: String?
var isFinalized: Bool?
var id: Int?
var idString: String? {
get{
return String(describing:self.id!)
}
}
convenience init(json: JSON?) {
self.init()
if let json = json {
name = json["evaluationDescription"].rawString()
isFinalized = json["evaluationFinalized"].intValue == 0 ? false : true
id = json["evaluationID"].intValue
}
}
override static func primaryKey() -> String? {
return "id"
}
}
これは私が書いた拡張ですが、これは変異があり、よりグローバルに使用できるようにしたいと思います。だから私はすべての私のモデルのために同じコードを使用することができます。
extension Evaluation {
func serialize(from json: JSON){
var temp = [Evaluation]()
for (_,j): (String,JSON) in json {
temp.append(Evaluation(json: j))
}
}
}
私は方法mutating
を作ってみましたが、エラー
クラスのメソッドには有効ではありません '変異' を持って...要するに
、私が欲しいです(jsonはやや擬似コードです)...
var json = "{'name':'test','isFinalized','0','id':'532'}"
var evaluations = [Evaluations]()
evaluations.serialize(from: json)
お返事ありがとうございます。私はそれを試してみましょう、しかし、私はRealmを使用しているので、私はイニシャライザまたはデフォルト値を使用する必要があります。 – TheValyreanGroup
ちょっとした注意。多くの場合、構造体は良いアイデアですが、Realmモデルの型はクラスでなければなりません。 – AustinZ