Im再次与swift数组和containsObject提供的NSArray只!
我把swift数组桥接到NSArray来做,包含:
extension Array { func contains(object:AnyObject!) -> Bool { if(self.isEmpty) { return false } let array: NSArray = self.bridgeToObjectiveC(); return array.containsObject(object) } }
它工作正常,但一旦我把一个字符串!在String类型的数组中,它崩溃。即使containsObject不带AnyObject!
var str : String! = "bla" var c = Array<String>(); c.append(str) println(c.contains(str))
声明一个String!数组也没有帮助
var str : String! = "bla" var c = Array<String!>(); c.append(str) println(c.contains(str))
但同样没有!工作正常
var str : String = "bla" var c = Array<String>(); c.append(str) println(c.contains(str))
所以我怎么明确包装东西?我真的不明白为什么我必须明确包装它,所以它是正确的解开,但它是什么样子…
Swift 1:
原文链接:https://www.f2er.com/swift/320887.htmllet array = ["1","2","3"] let contained = contains(array,"2") println(contained ? "yes" : "no")
Swift 2& Swift 3:
let array = ["1","3"] let contained = array.contains("2") print(contained ? "yes" : "no")