searchDisplayController no muestra los resultados si el idioma del iPhone no es inglés

Tengo un searchDisplayController que funciona perfectamente cuando se buscan palabras en inglés y en árabe utilizando un método como sigue:

 - (void)filterContentForSearchText:(NSString*)searchText scope:(NSInteger)scope { NSString *query = self.searchDisplayController.searchBar.text; if (query && query.length) { NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"ClientName contains[cd] %@", query]; [searchResultController_.fetchRequest setPnetworkingicate:pnetworkingicate]; } NSError *error = nil; if (![[self searchResultController] performFetch:&error]) { // Handle error NSLog(@"Unresolved error %@, %@", error, [error userInfo]); exit(-1); // Fail } } 

Sin embargo, esto funciona bien si el idioma del iPhone es inglés, pero si cambio el idioma del iPhone a árabe (configuration global) e intente search palabras en árabe o inglés, el searchResultsController no mostrará los resultados, ¿por qué?

ps cuando pongo una palabra árabe estática en una consulta como esta: NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"ClientName contains[cd] %@", @"تجريب"]; el searchDisplayController mostrará el resultado correcto de la palabra árabe تجريب

EDIT: He intentado build el pnetworkingicado en un código como este:

  NSExpression *clientNameEx=[NSExpression expressionForKeyPath:@"ClientName"]; NSExpression *aClientEx=[NSExpression expressionForConstantValue:query]; NSPnetworkingicate *pnetworkingicate=[NSComparisonPnetworkingicate pnetworkingicateWithLeftExpression:clientNameEx rightExpression:aClientEx modifier:NSDirectPnetworkingicateModifier type:NSContainsPnetworkingicateOperatorType options:0]; 

pero fue en vano …

Hice el proyecto de testing con XCode 4, la plantilla MasterDetail, la casilla CoreData activada y agregué SearchBarController a la vista maestra pnetworkingeterminada, agregué el delegado UISearchBarDelegate en el encabezado y se presionó el método searchBarTextDidEndEditing para invocar la búsqueda una vez hecho.

 -(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{ [NSFetchedResultsController deleteCacheWithName:nil]; self.fetchedResultsController = nil; [self.tableView reloadData]; } 

El último paso fue agregar en fetchedResultsController:

 NSString *query = self.searchDisplayController.searchBar.text; if (query.length) { NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat:@"timeStamp contains[cd] %@", query]; NSLog(@"pnetworkingicate %@", [pnetworkingicate description]); [fetchRequest setPnetworkingicate:pnetworkingicate]; } 

Cambié el iPhone Simulator y lo probé con la configuration de iOS5 y árabe. Todas las búsquedas con éxito, buscando la palabra "testing" y la palabra "تجريب" muestran los resultados. Sin embargo, la palabra "تجريب" fue copy pegada de su pregunta, ya que mi árabe está un poco oxidado :). También he intentado hacer un logging en la database con la primera letra en el keyboard árabe y luego searchlo y el resultado aparece.

Acabo de encontrar este artículo y me recordó tu pregunta. ¿Quizás puedas usar esta solución?