Mes*_*ery 9 arrays string filtering ios swift
我在swift中过滤了一系列关键字(字符串)的麻烦,我的代码:
self.filteredKeywords=filter(keywords.allValues, {(keyword:NSString) ->
Bool in
let words=keyword as? NSString
return words?.containsString(searchText)
})
Run Code Online (Sandbox Code Playgroud)
由于AnyObject
不能是子类型NSString
,我坚持这个!
GoZ*_*ner 16
[更新为Swift 2.0]
正如NSString
免费桥接到Swift一样String
,只需避免强制:
3> ["abc", "bcd", "xyz"].filter() { nil != $0.rangeOfString("bc") }
$R1: [String] = 2 values {
[0] = "abc"
[1] = "bcd"
}
Run Code Online (Sandbox Code Playgroud)
但是,如果你认为allValues
不是字符串:
(keywords.allValues as? [String]).filter() { nil != $0.rangeOfString("bc") }
Run Code Online (Sandbox Code Playgroud)
它返回一个可选的数组.
Swift 4.2 提供了一种新方法来做到这一点:
var theBigLebowski = ["The Dude", "Angry Walter", "Maude Lebowski", "Donny Kerabatsos", "The Big Lebowski", "Little Larry Sellers"]
// after removeAll -> ["The Dude", "Angry Walter", "Donny Kerabatsos", "Little Larry Sellers"]
theBigLebowski.removeAll{ $0.contains("Lebowski")}
print(theBigLebowski)
Run Code Online (Sandbox Code Playgroud)