Ich möchte eine Telefonnummer Suche in SQLite db tun. Die Telefon-Tabelle hat ein Zahlenfeld, das einen String-Wert enthält (zB: +1 (2-34) 56-78).Coredata Abrufanforderung mit NSPredate
Wenn der Benutzer den Suchtext als "234" eingibt, muss ich die Telefonnummern mit Ziffern (alle anderen Alphabete oder Sonderzeichen in der gespeicherten Zeichenfolge eliminierend) mit NSPredate abrufen und mit der eingegebenen Zeichenfolge vergleichen. Sollen wir dies mit einem Prädikat in einer Abrufanforderung tun?
Ich habe versucht, mit folgenden Prädikat und es tut mir das erwartete Ergebnis zurück:
NSPredicate * Prädikat = [NSPredicate predicateWithFormat: @ "contact = null UND UNTERABFRAGE (Telefonliste, $ Telefon, ANY phone.number $ ENTHÄLT [c]% @). @ count> 0 ", searchText];
Gibt es eine Möglichkeit, dies zu tun? Kann ich dafür einen regulären Ausdruck mit nspredicate verwenden?
Hat ein Telefon eine Nummer oder ist die Nummer eine zu-viele-Beziehung? – Willeke
Telefon Tabelle haben zwei Felder: Nummer und Bezeichnung. Ein Kontakt kann viele Telefonnummern haben. Also hier 'phoneList' ist die viele Beziehung des Kontakts zur Telefon-Tabelle. Ich versuche, Kontakte mit der Suchzeichenfolge als Telefonnummer abzurufen. – JamesDon
SUBQUERY und ANY beide behandeln eine zu viele Beziehung. Versuchen Sie das Format '" contactName! = Null AND ANY phoneList.number CONTAINS [c]% @ ", searchText'. – Willeke