Tôi có một searchDisplayController
mà hoạt động hoàn hảo khi tìm kiếm bằng tiếng Anh và bằng chữ Ả Rập sử dụng một phương pháp như sau:searchDisplayController không hiển thị kết quả nếu ngôn ngữ iphone là phi tiếng Anh
- (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
}
}
Tuy nhiên, điều này hoạt động tốt nếu iphone ngôn ngữ là tiếng Anh, nhưng nếu tôi thay đổi ngôn ngữ iPhone sang tiếng Ả Rập (cài đặt chung) và cố tìm kiếm bằng các từ tiếng Ả Rập hoặc tiếng Anh thì searchResultsController
sẽ không hiển thị kết quả, tại sao?
p.s. khi tôi đặt một tiếng Ả Rập từ tĩnh trong truy vấn như thế này: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ClientName contains[cd] %@", @"تجريب"];
các searchDisplayController
sẽ hiển thị kết quả chính xác của từ arabic تجريب
EDIT: Tôi đã cố gắng để xây dựng vị trong mã như thế này:
NSExpression *clientNameEx=[NSExpression expressionForKeyPath:@"ClientName"];
NSExpression *aClientEx=[NSExpression expressionForConstantValue:query];
NSPredicate *predicate=[NSComparisonPredicate predicateWithLeftExpression:clientNameEx
rightExpression:aClientEx
modifier:NSDirectPredicateModifier
type:NSContainsPredicateOperatorType
options:0];
nhưng vô ích ...
Sử dụng searchText thay vì văn bản trong searchBar. Và xin vui lòng, NSLog() chuỗi nhận được trong searchText và so sánh với chuỗi chữ mà hoạt động tốt như bạn nói trong p.s. Vì vậy, chúng tôi sẽ biết nếu vấn đề là với chuỗi đó. – Gabriel
Tôi đã làm điều này, NSLog hiển thị cùng một chuỗi ký tự chữ cái trong p.s. phần câu hỏi của tôi, NHƯNG những gì khiến tôi phát điên là kết quả là trống rỗng !! – JAHelia
Và điều gì xảy ra nếu bạn so sánh cả hai chuỗi với ´ [@ "تجريب" so sánh: searchText] ´? Nó quay trở lại cái gì? NSOrderSame? – Gabriel