我有数组包含模型,在那个模型中我有3个对象,如String,firstName
,lastName
和action
,
我正在使用以下谓词
let resultPredicate = NSPredicate(format: "lastName CONTAINS [c] %@ OR firstName CONTAINS [c] %@ OR action CONTAINS [c] %@", searchText, searchText, searchText)
tableDataArray = dataSourceArray.filter { resultPredicate.evaluateWithObject($0) }
如果我搜索基于
firstName
或lastName
的字符串,其工作正常。但是,如果我搜索action
中存在的字符串,则不会过滤。关于此的任何帮助将不胜感激。
最佳答案
真的很奇怪...我无法找到解决方案。但是我发现了不使用谓词来过滤数组的另一种方法。
tableDataArray = dataSourceArray.filter {$0.firstName.containsString(searchText) || $0.lastName.containsString(searchText) || $0.action.containsString(searchText) }
关于ios - NSPredicate在某些对象上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33646507/