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

Tok*_*Too 0 swift

我无法理解这一点.我尝试了不同的铸造变体,但似乎无法得到它.

    var tArray : NSArray = tempArr2 as NSArray
    memoArray = tArray.mutableCopy() as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)

完整的错误消息是:

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

这是整个块,虽然我不认为它会有所作为,因为错误只与这种投射方法有关.

    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
Run Code Online (Sandbox Code Playgroud)

kat*_*000 5

看看reverse()返回类型.你应该把它投到Array:

var tempArr2 = Array(tempArr.reverse())
Run Code Online (Sandbox Code Playgroud)