Допустим, у меня есть объект данных json, который я хотел бы проанализировать в своем собственном объекте. Я сталкивался с двумя способами сделать это. Во-первых, использовать инициализатор следующим образом:
class DataModelOne {
let firstProperty: String?
let secondProperty: String?
init(json: [Sting: AnyObject]) {
self.firstProperty = json["firstProperty"] as? String
self.secondProperty = json["secondProperty"] as? String
}
}
Это можно назвать так:
let object = DataModelOne(json: data)
где данные - это ваш JSON, который вы пытаетесь проанализировать.
Второй метод, с которым я столкнулся, заключается в использовании вычисляемых свойств:
class DataModelTwo {
let json: [String: AnyObject]
init(json: [String: AnyObject]) {
self.json = json
}
var firstProperty: String? {
return json["firstProperty"] as? String
}
var secondProperty: String? {
return json["secongProperty"] as? String
}
}
Это будет инициализировано так же, как указано выше:
let object = DataModelTwo(json: data)
Помимо того факта, что вы не могли установить свойства после того, как данные были преобразованы с использованием DataObjectTwo, так как они являются вычисляемыми свойствами и доступны только для получения, каковы преимущества / недостатки анализа при использовании этих двух методов?