检查NSMutableArray是否包含给定值

时间:2016-06-11 10:57:49

标签: ios arrays swift nsmutablearray

我的NSMutableArray包含String个值。我有一个String变量,我想检查它是否包含在数组中。

我尝试将.contains()与String结合使用,但它说:

  

无法将String类型的值转换为预期的参数类型...

var mutableArray = NSMutableArray()  // ["abc", "123"]
var string = "abc"

mutableArray.contains("abc") {       // above error in this line

}

2 个答案:

答案 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")