Как фильтровать @Query с привязанным элементом

У меня есть несколько, которым передан элемент типа FamilyMember. В представлении доступен список дел. У работы есть назначенный ей участник. Я хочу отфильтровать дела по прошедшему члену семьи.

2 Структуры и код просмотра:

      @Model
class Chore: Identifiable {
    @Attribute(.unique) var id = UUID()
    var name: String
    var frequency: ChoreFrequency
    var assignedTo: FamilyMember
    var isComplete: Bool
    var dueDate: Date

    init(id: UUID = UUID(), name: String = "", frequency: ChoreFrequency = .daily, assignedTo: FamilyMember = FamilyMember(), isComplete: Bool = false, dueDate: Date = Date()) {
        self.name = name
        self.frequency = frequency
        self.assignedTo = assignedTo
        self.isComplete = isComplete
        self.dueDate = dueDate
    }
}


@Model
class FamilyMember: Identifiable {
    @Attribute(.unique) var id: String { name }
    var name: String

    init(name: String = "Unassigned") {
        self.name = name
    }
}

// Hashable extension 




struct MemberView: View {
    @Bindable var member: FamilyMember
    @Query private var chores: [Chore]

    init(member: FamilyMember) {
        self.member = member
        let predicate = #Predicate<Chore> {
            $0.assignedTo == member  // <— Error occurs here!
        }

        _chores = Query(filter: predicate, sort: \.dueDate)
    }

    .
    .
    .

Именно при создании предиката у меня возникает ошибка преобразования значения.Cannot convert value of type 'PredicateExpressions.Equal<PredicateExpressions.KeyPath<PredicateExpressions.Variable<Chore>, FamilyMember>, PredicateExpressions.Value<FamilyMember>>' to closure result type 'any StandardPredicateExpression<Bool>'

Что я делаю не так?

0 ответов

Другие вопросы по тегам