我有3个核心数据实体。
MenuItemsItemsItemLangs

所有实体都具有iItemId属性。用户需要使用sItemName进行搜索,可以在ItemLangs中找到该代码。

UITableView包含MenuItems数组。

我试过filteredArrayUsingPredicate,但是我的谓词不正确。在过滤数组之前,是否需要先遍历MenuItems数组?

这是我的谓词:

NSPredicate * resultPredicate = [NSPredicate
predicateWithFormat:@“sItemName LIKE%@”,searchText];

我可以知道如何使用它来过滤我拥有的MenuItems数组吗?

谢谢!

最佳答案

您需要的是这样的谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sItemName CONTAINS[cd] %@", searchText];
[cd]代表不区分大小写。

或者,如果您喜欢“LIKE”,请参考this answer

更新:

您还应该查看要获取的数据项-sItemName。通过调试器,检查数据源数组返回什么对象?我指的是您要将上述谓词应用于的数组。通向sItemName可能涉及一些关键路径层次结构,在这种情况下,您需要使用点表示法,例如Items.ItemLangs.sItemName

10-08 07:27