0

У меня есть основной объект данных с названием "title", который является строкой для локализованной таблицы. Мне нужно создать предикат и дескриптор сортировки, который позволит мне сравнивать локализованный (заголовок), а не только заголовок. Возможно ли это?NSPredicate с локализованным значением для ключа


Edit: что у меня есть объект, называемый "Person". У этого объекта есть свойство «stringForALocalizedTable», так что для одного языка NSLocalizedString(person.stringForALocalizedTable) приведет «Алекс», а для другого языка это приведет к «Александру». Я хочу, чтобы создать предикат, как

[NSPredicate predicateWithFormat: @"NSLocalizedString(stringForALocalizedTable) == %@", @"Alex"] 

Я предполагаю, что это возможно с predicateWithBlock: метод, но я не могу использовать его с основными данными.

ответ

2

Вы всегда можете использовать %K в качестве аргумента для форматирования ключа, например:

NSString *localizedKey = NSLocalizedString(@"title", nil); // localize it. 
//Use this localized key as key for search 
NSPredicate *p = [NSPredicate predicateWithFormat:@"%K contains[cd] %@",localizedKey , searchString]; 

PS: Я задаюсь вопросом, почему бы локализовать свойства таблицы.

EDIT: если вы хотите найти локализованное значение, тогда вам нужно локализовать значение.

NSString *localizedSearch = NSLocalizedString(@"title", nil); // localize it. 
//Use this localized search string to look for provided value 
NSPredicate *p = [NSPredicate predicateWithFormat:@"title contains[cd] %@",localizedSearch]; 
+0

Право, спасибо! Мне нужны мои пользователи, чтобы изменить язык приложения внутри приложения. Скажем, у меня есть Entity: «person» и свойство «name». И в моем tableView какая-то ячейка отображает это имя (cell.label.text = Localized (название). Если приложение на английском языке, я хочу, чтобы оно отображалось «Мария», если ее по-русски - Мария. Есть ли лучший подход? – t0a0

+0

Да, теперь это ясно, поэтому вы сохраняете одно и то же имя на другом языке. Таким образом, вы ищете поиск локализованного ключа. –

+0

Я знаю его вид позднего, но я только что понял, что ваше решение не является тем, чего я хочу. Пожалуйста, см. мой отредактированный вопрос. Спасибо! – t0a0

 Смежные вопросы

  • Нет связанных вопросов^_^