web-dev-qa-db-fra.com

Plusieurs NSPredicates pour NSFetchRequest dans Swift?

Actuellement, j'ai un NSFetchRequest simple avec un NSPredicate associé. Cependant, j'espère qu'il existe un moyen d'ajouter plusieurs prédicats. J'ai vu des exemples dans Objective C, mais aucun pour Swift.

Pouvez-vous définir une liste de NSPredicate ou ajouter plusieurs objets NSPredicate à une seule NSFetchRequest d'une manière ou d'une autre?

Merci!

26
ardevd

Vous pouvez utiliser "NSCompoundPredicate". Par exemple:

    let converstationKeyPredicate = NSPredicate(format: "conversationKey = %@", conversationKey)
    let messageKeyPredicate = NSPredicate(format: "messageKey = %@", messageKey)
    let andPredicate = NSCompoundPredicate(type: NSCompoundPredicateType.AndPredicateType, subpredicates: [converstationKeyPredicate, messageKeyPredicate])
    request.predicate = andPredicate

Vous pouvez changer en "AndPredicateType" ou "OrPredicateType"

46
Manuel

Mise à jour pour 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

Le changement dans la dernière version Swift Version est:

NSCompoundPredicateType.AndPredicateType replaced by `NSCompoundPredicate.LogicalType.and `

J'espère que cela aide!!!

Merci

15
Harjot Singh