我的NSMutableArray
包含String
个值。我有一个String变量,我想检查它是否包含在数组中。
我尝试将.contains()
与String结合使用,但它说:
无法将String类型的值转换为预期的参数类型...
var mutableArray = NSMutableArray() // ["abc", "123"]
var string = "abc"
mutableArray.contains("abc") { // above error in this line
}
答案 0 :(得分:2)
在NSMutableArray
中检查元素存在的多种方法。即
if mutableArray.contains("abc")
print("found")
else
print("not found")
或
if contains(mutableArray, "abc")
print("found")
或
if mutableArray.indexOfObject("abc") != NSNotFound
print("found")
如果想根据版本检查元素的存在 swift
Swift1
if let index = find(mutableArray, "abc")
print(index)
Swift 2
if let index = mutableArray.indexOf("abc")
print(index)
答案 1 :(得分:1)
我仍然不明白为什么你不能使用原生的Swift数组,但没关系。
两种可能的解决方案是使用
let contains = mutableArray.contains { $0 as? String == "abc" }
或
let contains = mutableArray.containsObject("abc")
或
let contains = mutableArray.indexOfObject("abc") != NSNotFound
如果您使用原生数组,则只需执行
var array = ["123", "abc"]
let contains = array.contains("abc")