Skip to content

Protocol

PredicateExpression

iOS 17.0+ iPadOS 17.0+ Mac Catalyst 17.0+ macOS 14.0+ tvOS 17.0+ watchOS 10.0+
A component expression that makes up part of a predicate.
protocol PredicateExpression<Output>

Overview

To transform a predicate, define a protocol for the result and add conformance on each predicate expression type that you support. For example:

protocol ProsePredicateExpression {
func proseQuery() -> String
}

// Repeated for each supported operator.
extension PredicateExpressions.Equal: ProsePredicateExpression
where LHS: ProsePredicateExpression,
RHS: ProsePredicateExpression {
func proseQuery() -> String {
return lhs.proseQuery() + " is equal to " + rhs.proseQuery()
}
}

extension Predicate  {
func proseQuery() -> String? {
guard let expression = expression as? ProsePredicateExpression else { return nil }
return expression.proseQuery()
}
}

Topics

Associated Types

Instance Methods

Relationships

Inherited By

Conforming Types