用于搜索NSMutableArray的谓词

时间:2014-11-21 22:20:59

标签: ios nsarray nspredicate predicate

我需要一些帮助才能找出正确的NSPredicate语法来正确搜索我的数组,如:

    CSVFinalData: (
    "Width:1,5 Diameter:12 Strength:0,25 Strength:900 Mode:L Spring:371M ",
    "Width:2,2 Diameter:6,5 Strength:0,45 Strength:1200 Mode:M Spring:485M ",
    "Width:3,5 Diameter:14,5 Strength:0,3 Strength:1600 Mode:M Spring:380M ",
    "Width:5 Diameter:7 Strength:0,25 Strength:850 Mode:L Spring:525M ",
    "Width:4,2 Diameter:10,2 Strength:0,4 Strength:1200 Mode:S Spring:1232S ",
    "Width:3 Diameter:6,8 Strength:0,15 Strength:800 Mode:S Spring:1439S ",
    "Width:1 Diameter:4,7 Strength:0,12 Strength:450 Mode:L Spring:129M ",
    "Width:7,3 Diameter:15,5 Strength:0,5 Strength:1400 Mode:M Spring:563M "
)

这是我的NSPredicate

NSPredicate *csvsearch =
[NSPredicate predicateWithFormat:@"'Width:' MATCHES %@", searchBar.text];

我也尝试过其他一些谓词,但结果每次都是空的。 唯一的例外是searchBar.text是'宽度:'它会显示每个对象。

我正在使用Xcode 6.1和iOS 8.1。

感谢您的帮助!

@edit:

我用@Larme解决方案玩了一下。 CONTAINS太不精确了。当搜索{4}的Width时,它也会找到Diameter 4,2的行。这在理论上应该是正确的:

[NSPredicate predicateWithFormat:@"self CONTAINS 'Width:4,2'"];

让它变得动态我将其改为:

[NSPredicate predicateWithFormat:@"self CONTAINS '%@:%@'", csvHeaderName1, searchBar.text];

但是一旦它充满活力,它就不再工作了,但我不明白为什么:(

csvHeaderName1有内容"宽度"和searchBar.text" 4,2"

0 个答案:

没有答案