данные в память, вроде все ок.
Есть проблема - когда я делаю сортировку проиходит не memory leak , но что-то похожее на это:
вот функция:
let phones = realm.objects(PhoneExtModel.self).filter(NSPredicate(format: "isBlocked == %@ AND groupId == %d", NSNumber(booleanLiteral: isBlocked), (group.id)))
Вот она же с сортировкой:
let phones = realm.objects(PhoneExtModel.self).filter(NSPredicate(format: "isBlocked == %@ AND groupId == %d", NSNumber(booleanLiteral: isBlocked), (group.id))).sorted(byProperty: "number", ascending: true)
Если обратиться к результатам второй (отсортированной) функции, например так:
for i in 0 ..< phones.count {
print(phones[i].number) }
то происходит сильный скачек в памяти.
Почему так? я с экстеншном работаю и там этот скачек приводит к его закрытию. Если к результатам первой - то все ок. Но мне нужно чтоб была отсортировка.
вероятно при сортировке, что вполне логично, ленивая коллекция перестаёт быть таковой, так как для сортировки набор обычно выводится в память, соответственно вызывая sorted/asList итд ты провоцируешь итерацию по коллекции, чего не происходит при обычном выводе. Пишу в сослагательном наклонении по причине того, что не знаю чё у реалма внутри, просто основываюсь на опыте с ленивыми вычислениями.
Обсуждают сегодня