Swift - NSPredicate

Swift - NSPredicate

是否有更简洁的方法来执行此操作而无需指定 searchText 两次?或者这是最好的方法?

let searchPredicate = NSPredicate(format: "SELF.firstName CONTAINS[c] %@ OR SELF.lastName CONTAINS[c] %@", argumentArray: [searchText, searchText])

在你的例子中,我认为 va_arg 原型比数组一更干净:

let searchPredicate2 = NSPredicate(format: "SELF.firstName CONTAINS[c] %@ OR SELF.lastName CONTAINS[c] %@", searchText, searchText)

但这两种情况都会有相同的结果,所以这真的取决于你。

请注意,您还有第三种创建谓词的方法:使用字典。看看 documentation.