我有3个核心数据实体。
MenuItems
,Items
,ItemLangs
。
所有实体都有iItemId
属性。用户需要使用sItemName
中的ItemLangs
进行搜索。
UITableView包含MenuItems
的数组。
我尝试过filterArrayUsingPredicate,但我的谓词不对。在我可以过滤数组之前,是否需要首先遍历MenuItems
数组?
这是我的谓词:
NSPredicate * resultPredicate = [NSPredicate predicateWithFormat:@" sItemName LIKE%@",searchText];
我可以知道如何使用它来过滤我拥有的MenuItem数组吗?
谢谢!
答案 0 :(得分:3)
你需要的是这样一个谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sItemName CONTAINS[cd] %@", searchText];
[cd]
代表不区分大小写。
或者,如果您喜欢“喜欢”,请参阅this answer。
<强>更新强>
您还应该查看要获取的数据项 - 在您的案例中为sItemName。通过调试器,检查数据源数组返回的对象是什么?我指的是你想要应用上述谓词的数组。也许在通过sItemName时涉及一些keypath层次结构,在这种情况下你需要使用点表示法,例如Items.ItemLangs.sItemName
。
答案 1 :(得分:2)