如何创建一个谓词,其中 % 在 ios 中作为字符串工作

Posted

技术标签:

【中文标题】如何创建一个谓词,其中 % 在 ios 中作为字符串工作【英文标题】:how to create a predicate in which % work as a string in ios 【发布时间】:2014-11-12 13:34:06 【问题描述】:

我正在使用 Predicate 来过滤 NSArray 但是,当像这样创建 Predicate 时

  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K contains[c] %@ && %K contains[c] %@ ",
                                                            kUnitUnitcategoryKey,
                                                            @"Blood Pressure Diastolic",
                                                            kUnitUnitNameKey,
                                                            [_txtOxygenSaturationUnit.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];

在这个“谓词”字符串之后是:“unit_category CONTAINS[c] “Blood Pressure Diastolic” AND unit_name CONTAINS[c] “%” “

NSArray *results = [_arrUnitsName filteredArrayUsingPredicate:predicate];

它将返回零记录。

现在,我如何使用 % 作为字符串。

【问题讨论】:

【参考方案1】:

这是编写有点复杂的谓词的一种极其丑陋的方式。你会发现使用 NSCompoundPredicates 更容易管理和修改。只需创建多个 NSPredicate,然后使用 andPredicate 来组合所有谓词。

What is the best way to build a complex NSCompoundPredicate?

至于如何使用 % 作为字符串的实际问题?如果您得到零结果以便于调试,则单独测试每个谓词,您会发现问题更容易。

【讨论】:

在第二部分使用带有块的谓词然后将它们复合成一个 AND 谓词可能更容易。

以上是关于如何创建一个谓词,其中 % 在 ios 中作为字符串工作的主要内容,如果未能解决你的问题,请参考以下文章

如何通过在 ios 中结合个人实体的名字和姓氏来对全名应用谓词

如何从 SQL where 子句创建一个 JavaScript 函数,以将其作为谓词传递给 JavaScript 数组的过滤函数?

创建一个带有换行符的 NSPredicate 作为字符串的一部分

List<object>.RemoveAll - 如何创建适当的谓词

iOS谓词匹配字符串以及替换

如何在 CoreData iOS 谓词构建器中多次传递相同的参数?