快速数组无法将“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。请改用AnyAnyObjectAny 都不是 Equatable,所以函数 contains 不知道如何将数组元素与 otherArrayElement 进行比较。

为什么需要使用 Any 元素的数组?为什么不使用 Strings 的数组?您还想在其中存储什么?

【讨论】:

以上是关于快速数组无法将“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]?”