在我的应用程序中,我将数组存储属性声明为变量。当我想检查它是否包含和对象时,Xcode不会自动完成。如果我手动完成它会显示一个错误,说它不包含此方法。我认为虽然它被声明为var,但数组并不可变。这是我的代码:
class someClass{
var someArray = AnyObject[]()
func someFunction{
if someArray.containsObject("object") <--- error here
}
}
答案 0 :(得分:2)
您的代码包含许多语法错误:
class someClass
func someFunction
但您注意到的错误是containsObject
上没有方法Array
。你可以这样做:
contains(someArray, "object")
或者您可以将其投放到NSArray
:
(someArray as NSArray).containsObject("object")
正如Rob Napier正确指出的那样,第一个选项(当然)只适用于String[]
,而不是AnyObject[]
。斯威夫特真的不鼓励混合阵列。
答案 1 :(得分:1)
Array
没有方法containsObject
。这是NSArray
的方法。
您可以对filter
函数使用find()
方法。
您也可以将Array
转换为NSArray
,然后拨打containsObject
。