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
PredicateExpressions.ArithmeticPredicateExpressions.ClosedRangePredicateExpressions.CollectionContainsCollectionPredicateExpressions.CollectionIndexSubscriptPredicateExpressions.CollectionRangeSubscriptPredicateExpressions.ComparisonPredicateExpressions.ConditionalPredicateExpressions.ConditionalCastPredicateExpressions.ConjunctionPredicateExpressions.DictionaryKeyDefaultValueSubscriptPredicateExpressions.DictionaryKeySubscriptPredicateExpressions.DisjunctionPredicateExpressions.EqualPredicateExpressions.ExpressionEvaluatePredicateExpressions.FilterPredicateExpressions.FloatDivisionPredicateExpressions.ForceCastPredicateExpressions.ForcedUnwrapPredicateExpressions.IntDivisionPredicateExpressions.IntRemainderPredicateExpressions.KeyPathPredicateExpressions.NegationPredicateExpressions.NilCoalescePredicateExpressions.NilLiteralPredicateExpressions.NotEqualPredicateExpressions.OptionalFlatMapPredicateExpressions.RangePredicateExpressions.RangeExpressionContainsPredicateExpressions.SequenceAllSatisfyPredicateExpressions.SequenceContainsPredicateExpressions.SequenceContainsWherePredicateExpressions.SequenceMaximumPredicateExpressions.SequenceMinimumPredicateExpressions.SequenceStartsWithPredicateExpressions.StringContainsRegexPredicateExpressions.TypeCheckPredicateExpressions.UnaryMinusPredicateExpressions.ValuePredicateExpressions.Variable