Ho un searchDisplayController
che funziona perfettamente per la ricerca di parole arabe inglese e utilizzando un metodo come segue:searchDisplayController non visualizza i risultati se la lingua iphone non è inglese
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSInteger)scope
{
NSString *query = self.searchDisplayController.searchBar.text;
if (query && query.length) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ClientName contains[cd] %@", query];
[searchResultController_.fetchRequest setPredicate:predicate];
}
NSError *error = nil;
if (![[self searchResultController] performFetch:&error]) {
// Handle error
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
}
Tuttavia, questo funziona bene se l'iPhone la lingua è l'inglese, ma se cambio la lingua dell'iPhone in arabo (impostazioni globali) e provo a cercare in arabo o in inglese, lo searchResultsController
non mostrerà i risultati, perché?
p.s. quando ho messo una parola araba statica in query come questa: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ClientName contains[cd] %@", @"تجريب"];
il searchDisplayController
visualizzerà il risultato corretto della parola araba تجريب
EDIT: Ho provato a costruire il predicato in codice come questo:
NSExpression *clientNameEx=[NSExpression expressionForKeyPath:@"ClientName"];
NSExpression *aClientEx=[NSExpression expressionForConstantValue:query];
NSPredicate *predicate=[NSComparisonPredicate predicateWithLeftExpression:clientNameEx
rightExpression:aClientEx
modifier:NSDirectPredicateModifier
type:NSContainsPredicateOperatorType
options:0];
ma inutilmente ...
Utilizzare searchText anziché il testo in searchBar. E per favore, NSLog() la stringa ricevuta in searchText e confronta con la stringa letterale che funziona bene come dici tu nella tua p.s. Quindi sapremo se il problema è con quella stringa. – Gabriel
Ho fatto questo, NSLog mostra la stessa stringa araba letterale in p.s. sezione della mia domanda, MA quello che mi fa impazzire è che il risultato è vuoto !! – JAHelia
E se si confrontassero entrambe le stringhe con '[@ "تجريب" compare: searchText]'? Cosa restituisce? NSOrderSame? – Gabriel