Я делаю приложение для аэропортов и получаю массив данных из одного API, например:
"data":[
{"id":"001","code":"ABZ","name":"Aberdeen","country":"United Kingdom"},
{"id":"002","code":"AUH","name":"Abu Dhabi","country":"United Arab Emirates"},
.
.
.
]
И:
"airports":[
{"from":"001",
"to":["1","3","11","13","12","20","23","27","29","31","33"]
},
.
.
.
]
Я создалклассы моделей областей:
class AirportsDataRealm: Object {
@objc dynamic var name: String = ""
@objc dynamic var id: Int = 0
@objc dynamic var code: String = ""
@objc dynamic var country: String = ""
override static func primaryKey() -> String? {
return "id"
}
}
class AirportsFromToRealm: Object {
@objc dynamic var fromID: Int = 0
var toID = List<Int>()
override static func primaryKey() -> String? {
return "fromID"
}
}
теперь я хочу сохранить их в области, я использую swiftyJSON, и я использовал цикл for, чтобы сделать это, и он работает нормально, но я думаю, что это занимает много времени, так какмассив очень длинный, вот что я сделал:
// Airports Data
let countData = json["data"].count
for i in 0...countData - 1{
let airportsDataModel = AirportsDataRealm()
airportsDataModel.code = json["data"][i]["code"].stringValue
airportsDataModel.name = json["data"][i]["name"].stringValue
airportsDataModel.country = json["data"][i]["country"].stringValue
airportsDataModel.id = Int(json["data"][i]["id"].stringValue)!
try! realm.write {
realm.add(airportsDataModel, update: true)
}
}
//Airports FROM-TO
let countFromTo = json["airports"].count
for i in 0...countFromTo - 1{
let fromToDataModel = AirportsFromToRealm()
fromToDataModel.fromID = Int(json["airports"][i]["from"].stringValue)!
let arrayTo = json["airports"][i]["to"].arrayValue.map{ $0.intValue }
fromToDataModel.toID.append(objectsIn: arrayTo)
try! realm.write {
realm.add(fromToDataModel, update: true)
}
}
есть ли способ сохранить весь массив в области одним кадром без цикла for?
PS "между двумя таблицами должно быть отношение, потому что у каждой из 'id' есть список идентификаторов 'to', а идентификаторы - из таблицы данных, сейчас мне удалось создать эти отношения при извлечении данных с использованием фильтров, поэтому простоигнорировать это "
Спасибо