searchDisplayController не отображает результаты, если язык iphone не английский

У меня есть searchDisplayController, который отлично работает при поиске английских и арабских слов с помощью следующего метода:

- (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
    }      
}

Однако, это работает отлично, если язык iphone английский, но если я изменю язык iPhone на арабский (глобальные настройки) и попытаюсь искать арабские или английские слова, searchResultsController не будет отображать результаты, почему?

p.s. когда я помещаю статическое арабское слово в запрос следующим образом: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ClientName contains[cd] %@", @"تجريب"]; то searchDisplayController выводит правильный результат арабского слова تجريب

EDIT: Я пытался построить предикат в коде вот так :

    NSExpression *clientNameEx=[NSExpression expressionForKeyPath:@"ClientName"];
    NSExpression *aClientEx=[NSExpression expressionForConstantValue:query];
    NSPredicate *predicate=[NSComparisonPredicate predicateWithLeftExpression:clientNameEx
                                                             rightExpression:aClientEx 
                                                                    modifier:NSDirectPredicateModifier
                                                                        type:NSContainsPredicateOperatorType
                                                                     options:0];

но безрезультатно . ..

6
задан JAHelia 10 January 2012 в 06:21
поделиться