Суть приложения в отображении таблицы прогноза погоды.
Нужно сделать так, чтобы приложение при отсутствии интернета показывало результаты из кэша который хранится в Realm.
Я не пойму как мне объявить объект массива структур в Realm.
Есть класс категорий
class Category {
let temp: Double
let wind: Double
let clouds: String
let date: String
init?(data: NSDictionary){
guard let containerTemp = data["main"] as? NSDictionary,
let temp = containerTemp["temp"] as? Double,
let containerClouds = data["weather"] as? [NSDictionary],
let clouds = containerClouds[0]["description"] as? String,
let containerWind = data["wind"] as? NSDictionary,
let wind = containerWind["speed"] as? Double,
let date = data["dt_txt"] as? String else{
return nil
}
self.temp = temp
self.clouds = clouds
self.wind = wind
self.date = date
}
}
и функция которая извлекает данные из JSON
class WeatherLoaderAlamo{
var delegate: WeatherLoaderAlamoDelegate?
func loadWeatherAlamo(){
AF.request("https://api.openweathermap.org/data/2.5/forecast?q=Moscow,ru&units=metric&****").responseJSON{
(response) in
if let data = response.data,
let json = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? NSDictionary,
let jsonDict = json["list"] as? NSArray{
var categories: [Category] = []
for dict in jsonDict{
if let category = Category(data: dict as! NSDictionary)
{categories.append(category)}
print(categories.count)
}
DispatchQueue.main.async {
print(jsonDict)
self.delegate?.loaded(categories: categories)
}
}
}
}
}
Как мне правильно объявить класс с реалмом и сохранять в него массив var categories: [Category] = []
Заранее спасибо!