現在、NSPredicateが関連付けられた単純なNSFetchRequestがあります。ただし、複数の述語を追加できる方法があることを期待しています。 Objective Cの例を見てきましたが、Swiftの例はありません。
NSPredicateのリストを定義したり、複数のNSPredicateオブジェクトを単一のNSFetchRequestに何らかの方法で追加したりできますか?
ありがとう!
「NSCompoundPredicate」を使用できます。例えば:
let converstationKeyPredicate = NSPredicate(format: "conversationKey = %@", conversationKey)
let messageKeyPredicate = NSPredicate(format: "messageKey = %@", messageKey)
let andPredicate = NSCompoundPredicate(type: NSCompoundPredicateType.AndPredicateType, subpredicates: [converstationKeyPredicate, messageKeyPredicate])
request.predicate = andPredicate
「AndPredicateType」または「OrPredicateType」に変更できます
Swift 4の更新
let predicateIsNumber = NSPredicate(format: "isStringOrNumber == %@", NSNumber(value: false))
let predicateIsEnabled = NSPredicate(format: "isEnabled == %@", NSNumber(value: true))
let andPredicate = NSCompoundPredicate(type: .and, subpredicates: [predicateIsNumber, predicateIsEnabled])
//check here for the sender of the message
let fetchRequestSender = NSFetchRequest<NSFetchRequestResult>(entityName: "Keyword")
fetchRequestSender.predicate = andPredicate
最新の変更Swiftバージョンは:
NSCompoundPredicateType.AndPredicateType replaced by `NSCompoundPredicate.LogicalType.and `
それが役に立てば幸い!!!
ありがとう