如何编写一个nspredicate来获取包含搜索词部分的记录?

时间:2017-05-18 10:15:50

标签: ios objective-c nspredicate

如何使用像这样的搜索字符串编写谓词来过滤掉数据。

用户输入“红辣椒”。

这应该返回所有记录,包括“红辣椒”,“红辣椒”等

这就是我写的。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ingredientName contains[c] %@)" ,self.searchIngrediants.text ];
        [fetchRequest setPredicate:predicate];

这只会返回包含搜索词的记录,例如“红辣椒”,“比利时红辣椒”。

是否可以使用谓词执行此操作。我正在使用Objective-c。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

为此你需要使用 $('#calendar').fullCalendar({ height: 700, locale: 'es', header: { left: 'prev,next, month basicWeek today', center: 'title', right: '' }, buttonText: { today: 'Hoy', month: 'Mes', week: 'Semana' }, editable: true, weekends: true, droppable: true, // this allows things to be dropped onto the calendar dragRevertDuration: 0, events: $scope.events, drop: function(date, jsEvent, ui, resourceId) { console.log("DROP!") } });

LIKE

答案 1 :(得分:0)

使用正则表达式,它应该是:

NSString*    regex     = @"red.*pepper";
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ingredientName MATCHES %@)", regex];

如果您的输入有换行符/ TABs / ...相应地调整regex

答案 2 :(得分:0)

目标C代码: -

NSPredicate *predicate;
predicate = [NSPredicate predicateWithFormat:@"ingredientName contains[cd] %@",self.searchIngrediants.text];

包含将检查字符是否存在。

Swift Code: -

var predicate: NSPredicate?
predicate = NSPredicate(format: "ingredientName contains[cd] %@", searchIngrediants.text)