2011-11-14 12 views
28

Ok Mam podstawową aplikację na iPada, która prosi o 5 kryteriów wyszukiwania/filtrowania od użytkownika. W oparciu o te dane, muszę przejść do mojej podstawowej db danych i wyciągnąć wszelkie zarządzane obiekty, które pasują do tych kryteriów. Wygląda na to, że muszę zastosować więcej niż jeden predykat do tego samego wniosku, czy to możliwe? Czy mógłbym napisać naprawdę długi fantazyjny predykat? Z wieloma wymaganiami? Jak mam się do tego zbliżyć?Czy mogę zastosować wiele predykatów do NSFetchRequest? Czy byłoby lepiej ręcznie przeanalizować wyniki?

Czy dobrym pomysłem byłoby po prostu pobranie wszystkich obiektów za pomocą żądania pobierania, a następnie przejrzenie każdej z nich i pobranie obiektów spełniających moje kryteria wyszukiwania?

Proszę doradzić!

Odpowiedz

80

Tak, to możliwe. Szukasz predykatów złożonych i oto przykład z I predykaty:

NSPredicate *compoundPredicate 
    = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray of Predicates]]; 

Można również użyć notPredicateWithSubpredicates i orPredicateWithSubpredicates w zależności od potrzeb.

Link do dokumentacji https://developer.apple.com/documentation/foundation/nscompoundpredicate

+2

Niż człowiek, próbowałem robić to przez komponowanie NSString i przekazaniem go do orzekać jako PDF. To działało dobrze, ale nie dla dat !! zmarnowałem dzień pracy. W ten sposób tworzy się filtry: D – MQoder

Powiązane problemy