swift - 无法在强制转换中将类型 '<[AnyObject]>' 的值转换为类型 'NSArray'

标签 swift

我无法理解这个问题。我尝试了不同的类型转换变体,但似乎无法理解。

    var tArray : NSArray = tempArr2 as NSArray
    memoArray = tArray.mutableCopy() as! NSMutableArray

完整的错误信息是:

无法将类型“ReverseRandomAccessCollection<[AnyObject]>”(又名“ReverseRandomAccessCollection>”)的值转换为强制类型“NSArray”

这是整个 block ,但我认为它不会有什么不同,因为错误仅出现在这种转换方法中。

    var tempArr : Array = memoArray as Array
    print("beforeReverse=\(tempArr)")
    var tempArr2 = tempArr.reverse()
    print("afterReverse=\(tempArr2)")
    var tArray : NSArray = tempArr2 as NSArray // <----- error
    memoArray = tArray.mutableCopy() as! NSMutableArray

    memoArray.addObject(memoDictionary)

    tempArr  = memoArray as Array
    print("beforeReverse=\(tempArr)")
    tempArr2 = tempArr.reverse()
    print("afterReverse=\(tempArr2)")
    tArray  = tempArr2 as NSArray // <----- error
    memoArray = tArray.mutableCopy() as! NSMutableArray

最佳答案

查看 reverse() 返回类型。您应该将其转换为 Array:

var tempArr2 = Array(tempArr.reverse())

关于swift - 无法在强制转换中将类型 '<[AnyObject]>' 的值转换为类型 'NSArray',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604823/

相关文章:

swift - "Appending"到 ArraySlice?

ios - 无法将类型 'P?' 的返回表达式转换为返回类型 'UIViewController'

ios - 无法将类型 '__NSCFConstantString' 的值转换为 'NSArray'

swift - 格式化后从字符串中删除空格

ios - Today Extension 更改后刷新应用程序上的 CoreData

swift - 如何在 mapKit 中绘制路线?

ios - Swift ios重置 View Controller 层次结构

ios - 将 UIView 动态添加到 UICollectionView 中的单元格仅适用于第一个单元格

swift - Xcode 8 自动完成需要 1 分钟才能出现

swift - 如何在 spritekit 游戏中制作建筑计时器?