struct Predicate<each Input> : Sendable, Codable, CodableWithConfiguration
<aside> π‘ κ²μ λλ νν°λ§μ λͺ©μ μΌλ‘ μ λ ₯κ°λ€μ μ§ν©μ κ²μ¬νλλ° μ¬μ©λλ λ Όλ¦¬μ 쑰건μ.
2023λ
NSPredicate
νμ
λ체λ₯Ό λͺ©μ μΌλ‘ μΆκ°λμ΄ iOS 17, β¦ μ΄μμμ μ¬μ© κ°λ₯νλ€.
NSPredicate
κ³Ό λΉκ΅ν΄ λ€μκ³Ό κ°μ μ₯μ μ΄ μλ€:
<aside> <img src="/icons/list_blue.svg" alt="/icons/list_blue.svg" width="40px" /> λͺ©μ°¨
</aside>
</aside>
Predicateμ Boolean κ°(true/false)μΌλ‘ νκ°λλ λ Όλ¦¬μ 쑰건μμ΄λ€. ννμ(expression) νΈλ¦¬ ꡬ쑰λ‘μ μ 체 predicateμ ꡬμ±νκ³ , μ°μ°μ λν νΌμ°μ°μ ννμμ ν¬ν¨ν νλμ ννμμΌλ‘μ μ μλλ€. 컬λ μ μμ νν°λ§μ μννκ±°λ νΉμ μμλ₯Ό κ²μν λ μ¬μ©νλλ°, ꡬ체μ μΈ μ£Όμ νμ©μ²λ λ€μκ³Ό κ°λ€:
NSPredicate
μμ±μλ‘ Predicate
β NSPredicate
λ³ν κ°λ₯)
NSArray
, NSSet
, NSOrderedSet
, NSMutableγ
)Sequence
νλ‘ν μ½μ filter
ν¨μextension Sequence {
public func filter(_ predicate: **Predicate<Self.Element>**) throws -> [Self.Element]
}
predicateμ μμ±ν λλ #Predicate
맀ν¬λ‘λ₯Ό μ¬μ©νμ¬ ν΄λ‘μ λ΄μ λ¨μΌ ννμμΌλ‘ 쑰건μμ μμ±νλ€:
let messagePredicate = #Predicate<Message> { message in
message.length < 100 && message.sender == "Jeremy"
}
predicateμ μμ±ν λ ν΄λ‘μ λ₯Ό μ¬μ©νμ§λ§, #Predicate
맀ν¬λ‘λ μ»΄νμΌμ ν΄λΉ ν΄λ‘μ μ½λλ₯Ό PredicateExpressions λ€μμ€νμ΄μ€μ μ μλ ννμ(PredicateExpression) νμ
κ΅¬μ‘°λ‘ ν΄μνμ¬ Predicate
νμ
μΌλ‘ λ³νμν¨λ€. (λ³΄λ€ μμΈνκ²λ, ν΄λ‘μ μ½λμ κ° ννμ μ»΄ν¬λνΈλ₯Ό μμνλ PredicateExpression
μ λ°ννλ builder νμ
λ©μλμ νΈμΆλ‘ λ³νμν€λ©°, μ΄ builder λ©μλ λν PredicateExpressions
λ€μμ€νμ΄μ€μ μ μλμ΄ μλ€.) λ°λΌμ ν΄λ‘μ μ μλ μ½λλ νλ‘κ·Έλ¨μμ μ€μ λ‘ μλλλ κ²μ΄ μλλΌ, 맀ν¬λ‘μ μ λ¬νλ μΌμ’
μ μμ²μΌ λΏμ΄λ€.
Swift Predicate
μμ μ§μνλ ννμμ StandardPredicateExpression νλ‘ν μ½μ μ€μνλ ννμλ€λ§μΌλ‘ νμ λλ©°, κ°λ°μλ€μ΄ ν΄λΉ νλ‘ν μ½μ μ€μνλ μ νμ
μ μΆκ°νλ κ²μ κΈμ§λμ΄ μλ€.
PredicateExpressions
λ€μμ€νμ΄μ€λ‘λΆν°, Predicate
μ μ λ΄μμ μ¬μ©ν μ μλ μ°μ° λ° ννμμ μμ μλ€:
+
, -
, *
, /
,Β %
-
...
,Β ..<
<
,Β <=
,Β >
,Β >=
,Β ==
,Β !=
? :