2016-06-11 190 views
2

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

我尝试使用.contains()与字符串,但它说:

无法将类型字符串到期望的参数类型的值...

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

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

} 
+1

请出示你的代码!你为什么不使用本地Swift数组? – luk2302

+0

因为我需要利用它为数组索引的方式,并且我可以随时操作它。编辑我的问题 – senty

+1

为什么不用像'var mutableArray = [String]'这样的字符串数组,而不是仅仅检查它 –

回答

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

如果我们想根据的 迅速

01版本检查元素的存在

SWIFT1

if let index = find(mutableArray, "abc") 
    print(index) 

斯威夫特2

if let index = mutableArray.indexOf("abc") 
    print(index) 
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")