NSPredicate过滤

时间:2017-03-29 21:47:14

标签: ios objective-c nspredicate

我将以下json对象存储为self.pElements。我有一个search bar用于根据name过滤项目。

[
 {"id":"1","name":"Baked Chicken","category":"1","price":"5.49"},
 {"id":"2","name":"Beef Kabob","category":"2","price":"5.49"},
 {"id":"3","name":"Beef Gyro","category":"1","price":"5.49"},
 {"id":"4","name":"Lamb Gyro","category":"4","price":"5.49"} 
] 

我尝试按以下方式按name进行过滤,但它总是返回null。即使我只输入Beef,也没有返回任何内容

pTempElements =[[NSMutableArray alloc] initWithArray:[self.pElements filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"name = %@", self.searchBar.text]]];

1 个答案:

答案 0 :(得分:1)

如果要筛选包含搜索字符串的字符串,请使用NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];

<body>
<div id="top" class="change">
<p> Microsoft </p>
<p> Apple </p>
<p> Sony </p>
</div>

<div id="middle">
<p> Disney </p>
<p> Nintendo </p>
<p> Sony </p>
</div>

<div id="bottom" class="change">
<p> Ice</p>
<p> Tea</p>
<p> Water</p>
</div>
</body>

有关字符串比较的列表,请参阅谓词编程指南中的an alternative solution