快速数组无法将“AnyObject”类型的值转换为预期的参数类型@noescape(AnyObject)抛出-> Bool
Posted
技术标签:
【中文标题】快速数组无法将“AnyObject”类型的值转换为预期的参数类型@noescape(AnyObject)抛出-> Bool【英文标题】:swift array Cannot convert value of type 'AnyObject' to expected argument type @noescape(AnyObject) throws - > Bool 【发布时间】:2016-01-14 10:10:19 【问题描述】: let otherArray:[AnyObject] = ["a","aa","aaa"]
let otherArrayElemnt = otherArray[0]
let myArray:[AnyObject] = ["qq"]
if myArray.contains(otherArrayElemnt) //<<<<<<< Error HERE
//if contains...doSomething
else
//none doSomething
错误:无法将“AnyObject”类型的值转换为预期的参数类型@noscape (AnyObject) 抛出 -> Bool
不知道怎么解决
【问题讨论】:
【参考方案1】:String
不是对象,因此它不符合协议AnyObject
。请改用Any
。
AnyObject
和 Any
都不是 Equatable
,所以函数 contains
不知道如何将数组元素与 otherArrayElement
进行比较。
为什么需要使用 Any
元素的数组?为什么不使用 String
s 的数组?您还想在其中存储什么?
【讨论】:
以上是关于快速数组无法将“AnyObject”类型的值转换为预期的参数类型@noescape(AnyObject)抛出-> Bool的主要内容,如果未能解决你的问题,请参考以下文章
Swift:无法将类型“[String:DayData]”的值转换为预期的参数类型“AnyObject?”
无法将“NSMutableDictionary”类型的值转换为预期的参数类型“[String: AnyObject]?”
无法将类型“([AnyObject]!,NSError!)-> Void”的值转换为期望参数类型“CLGeocodeCompletionHandler”
无法将类型“NSMutableDictionary”的值转换为强制类型“[NSObject: AnyObject]”以用于 google ios Analytics
错误:无法将 [anyobject] 转换为强制类型数组<_>
无法转换类型“[String : AnyObject]?”的值到预期的参数类型“[NSAttributedStringKey:Any]?”