Получение данных из Realm в Today Extension

realm
ios
swift
xcode
coredata

#1

Не могу понять почему не приходят данные с реалма, когда вызываю данную функцию в Today Extenison. Прошу помощи, перерыл все, что можно

func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) {
    // TODO: - Передавать groupID
    getData(dayWeek: whatDayNow(), weekType: whatWeekNow(), groupId: Settings.getGroupId())
    completionHandler(NCUpdateResult.newData)
}

Сама функция

fileprivate func getData(dayWeek: Int, weekType: WeekType, groupId: Int) {
    ApiManager().getSchedule(dayWeek: dayWeek, weekType: weekType, groupId: groupId) { (data) in
        guard let data = data else { return }
        self.lessonsData = data
    }
}

fileprivate func getData(dayWeek: Int, weekType: WeekType, groupId: Int) -> Results<LessonData> {
    
    let lessonsData = LessonData.getAll().filter("dayWeek = \(dayWeek) AND (weekTypeRM = \"full\" OR weekTypeRM = \"\(weekType.rawValue)\")").sorted(byKeyPath: "startTime")
    return lessonsData
}

func getSchedule(dayWeek: Int, weekType: WeekType, groupId: Int, _ completionHandler: @escaping (_ lessons: Results<LessonData>?) -> ()) {
    let api = host + "schedule/group/\(groupId)"
    DispatchQueue.main.async {
        completionHandler(self.getData(dayWeek: dayWeek, weekType: weekType, groupId: groupId))
    }
    guard let url = URL(string: api) else {
        completionHandler(nil)
        return
    }
    
    let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
        if error != nil {
            print(error?.localizedDescription)
            completionHandler(nil)
            return
        }
        guard let data = data else {
            completionHandler(nil)
            return
        }
        
        
        do {
            let schedule = try JSONDecoder().decode(ScheduleData.self, from: data)
            let lessonData = schedule.getLessons()
            LessonData.save(lessonData)
            
            
            DispatchQueue.main.async {
                completionHandler(self.getData(dayWeek: dayWeek, weekType: weekType, groupId: groupId))
            }
        } catch {
            print(error.localizedDescription)
            completionHandler(nil)
            return
        }
    }
    task.resume()
    
}

#2

Там же привели ссылки на примеры. Внимательно читаем


#3

Там не совсем верная информация, но вопрос уже решен, спасибо