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

时间:2014-11-12 13:34:06

标签: ios iphone xcode ipad nsarray

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

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

之后"谓词" string是:" unit_category CONTAINS [c]"血压舒张压" AND unit_name CONTAINS [c]"%" "

NSArray *results = [_arrUnitsName filteredArrayUsingPredicate:predicate];

它将返回Zero记录。

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

1 个答案:

答案 0 :(得分:1)

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

What is the best way to build a complex NSCompoundPredicate?

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