我再次使用swift数组和仅由NSArray提供的containsObject!
我将swift数组桥接到NSArray,包含:
extension Array {
func contains(object:AnyObject!) -> Bool {
if(self.isEmpty) {
return false
}
let array: NSArray = self.bridgeToObjectiveC();
return array.containsObject(object)
}
}
Run Code Online (Sandbox Code Playgroud)
它一般工作正常,但只要我放一个字符串!在String类型的数组中,它崩溃了.尽管containsObject确实采用了AnyObject!
var str : String! = "bla"
var c = Array<String>();
c.append(str)
println(c.contains(str))
Run Code Online (Sandbox Code Playgroud)
声明一个字符串!数组也没有帮助
var str : String! = "bla"
var c = Array<String!>();
c.append(str)
println(c.contains(str))
Run Code Online (Sandbox Code Playgroud)
但同样没有!
工作正常
var str : String = "bla"
var c = Array<String>();
c.append(str)
println(c.contains(str))
Run Code Online (Sandbox Code Playgroud)
那怎么我明确包装东西?我真的不明白为什么我必须明确地包装它,所以它是正确的解开,但这就是它的样子.
jer*_*e10 74
斯威夫特1:
let array = ["1", "2", "3"]
let contained = contains(array, "2")
println(contained ? "yes" : "no")
Run Code Online (Sandbox Code Playgroud)
斯威夫特2,3,4:
let array = ["1", "2", "3"]
let contained = array.contains("2")
print(contained ? "yes" : "no")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42979 次 |
最近记录: |