class book{
var nameOfBook: String!
}
var englishBooks=[book(),book(),book()]
var arr = englishBooks.filter {
contains($0.nameOfBook, "rt")
}
我正在使用这个过滤器,但出现错误,无法使用参数调用过滤器
最佳答案
contains()
检查序列是否包含给定元素,例如
如果 String
包含给定的 Character
。
如果您的目的是查找名称中包含子字符串“rt”的所有书籍,那么您可以使用rangeOfString()
:
var arr = englishBooks.filter {
$0.nameOfBook.rangeOfString("rt") != nil
}
或者不区分大小写的比较:
var arr = englishBooks.filter {
$0.nameOfBook.rangeOfString("rt", options: .CaseInsensitiveSearch) != nil
}
从 Swift 2 开始您可以使用
nameOfBook.containsString("rt") // or
nameOfBook.localizedCaseInsensitiveContainsString("rt")
在 Swift 3 中,这是
nameOfBook.contains("rt") // or
nameOfBook.localizedStandardContains("rt") // or
nameOfBook.range(of: "rt", options: .caseInsensitive) != nil
关于Swift 过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673936/