Silent push-уведомление достигает устройства, пользователь ничего не знает об уведомлении, но его приложение получает уведомление, и ему будет предоставлено некоторое время для загрузки нового контента и представления его пользователю независимо от состояния приложения (т. е. работает или не работает)
Метод удаленного push-уведомления вызывается только при запуске вашего приложения. Если приложение приостановлено или не запущено, система просыпается или запускает ваше приложение и помещает его в фоновое рабочее состояние перед вызовом метода. Этот метод предназначен для отображения обновленного контента для пользователя. Когда этот метод вызывается, ваше приложение имеет до 30 секунд времени настенных часов для выполнения операции загрузки и вызова указанного блока обработчика завершения. Если обработчик не вызван вовремя, ваше приложение будет приостановлено.
Для получения дополнительной технической информации вы можете просмотреть следующие ссылки:
Я предлагаю вам упорядочить свои структуры в матрицу [[Struct]]
, чтобы у вас был следующий массив [[Struct(name: 1, date: 20-10-2019, amount: 1), Struct(name: 2, date: 20-10-2019, amount: 2)], [Struct(name: 3, date: 20-10-2019, amount: 3)], ...]
, после чего вы можете использовать его для заполнения UITableView
.
Вы можете сделать с кодом ниже
//Since Set contains unique values, you will get all dates
let dates = Set(structs.map { [110].date })
var resultStructs: [[Struct]] = []
for date in dates {
var array: [Struct] = []
for element in structs {
if date == element.date {
array.append(element)
}
}
resultStructs.append(array)
}
, теперь resultStructs
будет содержать массив [[Struct]]
, упорядоченный по дате. Сортируйте его, чтобы получить правильный порядок и заполнить UITableView