senty senty - 5 months ago 26
Swift Question

Check if NSMutableArray contains a given value

I have an

NSMutableArray
that contains
String
values. I have a String variable and I want to check if it is contained in the array or not.

I tried using
.contains()
with String but it say:


Cannot convert value of type String to expected argument type...


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

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

}

Answer

I do still not understand why you cannot use a native Swift array, but okay.

Two possible solutions are to either use

let contains = mutableArray.contains { $0 as? String == "abc" }

or

let contains = mutableArray.indexOfObject("abc") != NSNotFound

If you would use a native array you could simply do

var array = ["123", "abc"]
let contains = array.contains("abc")