Мой объект области похож на следующий
final class Item: Object {
@objc dynamic var id: Int = 0
@objc dynamic var editTime: Double = 0 // timestamp
@objc dynamic var remindTime: Double = 0 // timestamp
}
Мне нужно получить данные в диапазоне, скажем, между 2020-04-23 и 2020-04-24.
Но правило сравнивается с editTime
, если remindTime
равно 0, в противном случае используйте remindTime
для сравнения.
Метод sort
в Swift Sequence
не является хорошим выбором в моем случае, поскольку он будет загружать все данные ( может быть несколько тысяч элементов) в память.
Вместо этого я хотел бы использовать NSPredicate
, но это кажется невозможным.
В настоящее время мое решение состоит в определении другой переменной, скажем filterTime
, для представления editTime
или remindTime
.
Недостатком является необходимость обновления filterTime
при обновлении remindTime
или editTime
, если remindTime
равно 0, что делает код немного грязно.
Есть ли хорошее решение для этого?