如何创建一个谓词,其中 % 在 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 作为字符串的一部分