ios - 具有本地化键值的 NSPredicate

标签 ios objective-c nspredicate nssortdescriptor nslocalizedstring

我有一个具有属性“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/

相关文章:

ios - 请参阅 swift stdout 以获取 react native 应用程序

ios - 如何为 iOS 应用程序使用现有的 GCM 发件人 ID

objective-c - 从 NSMutableArray 中删除对象

iphone - iOS iPad 启动横向,推送 VC,popVC, View 定位错误

ios - 使用 coredata 获取父文件夹内的子文件和文件夹的谓词

ios - 如何为 UIScrollView 启用方向锁定?

ios - 如果计数等于 0,如何将显示数据从 API 跳过到 Collection View 单元格

objective-c - AppDelegate、rootViewController 和 presentViewController

ios - 使用 NSPredicate 过滤 EKEvent

objective-c - 如何过滤 NSDictionary 和 NSDictionary 数组?