我有数组包含模型,在那个模型中我有3个对象,如String,firstNamelastNameaction

我正在使用以下谓词

let resultPredicate = NSPredicate(format: "lastName CONTAINS [c] %@ OR firstName CONTAINS [c] %@ OR action CONTAINS [c] %@", searchText, searchText, searchText)
tableDataArray = dataSourceArray.filter { resultPredicate.evaluateWithObject($0) }

如果我搜索基于firstNamelastName的字符串,其工作正常。但是,如果我搜索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/

10-10 22:24