我有一个带有属性" title"的核心数据实体,它是本地化表的字符串。 我需要能够创建一个谓词和一个排序描述符,允许我通过Localized(title)而不是title来进行比较。 有可能吗?
编辑:
假设我有一个名为" Person
"的实体。这个实体有一个属性" stringForALocalizedTable
",因此对于一种语言NSLocalizedString(person.stringForALocalizedTable)
将导致" Alex",对于另一种语言,它将导致" ;亚历山大&#34 ;.
我想创建一个像
[NSPredicate predicateWithFormat: @"NSLocalizedString(stringForALocalizedTable) == %@", @"Alex"]
我想可以使用predicateWithBlock:
方法,但我无法将其与核心数据一起使用。
答案 0 :(得分: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:我想知道为什么要本地化表格属性。
编辑:如果您想查找本地化值,则需要对该值进行本地化。
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];