我有一个具有属性“title”的核心数据实体,它是本地化表格的字符串。 我需要能够创建一个谓词和一个排序描述符,使我能够通过 Localized(title) 而不仅仅是标题进行比较。 可能吗?
编辑:
假设我有一个名为“Person
”的实体。这个实体有一个属性“stringForALocalizedTable
”,因此对于一种语言 NSLocalizedString(person.stringForALocalizedTable)
将得到“Alex”,而对于另一种语言它将得到“Alexander” .
我想创建一个像
[NSPredicate predicateWithFormat: @"NSLocalizedString(stringForALocalizedTable) == %@", @"Alex"]
我想这可以通过 predicateWithBlock:
方法实现,但我不能将它用于核心数据。
最佳答案
你总是可以使用 %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:我想知道为什么要本地化表格属性。
编辑:如果您想查找本地化的值,那么您需要将该值本地化。
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];
关于ios - 具有本地化键值的 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29347025/