下标范围[UInt8] - Swift

时间:2016-10-01 19:37:33

标签: swift subscript uint8array

所以我遇到的问题是我在init()中有一个带有参数的对象需要[UInt8]。我希望能够从另一个数组中获取范围并在init中使用它。见例子。

class Test {

    init(fromArray: [UInt8]) {
    // performs work
    }
}

let myStockArray: [UInt8] = [1,2,3,4,5,6,7,8] // reference array

let test = Test(fromArray: myStockArray[1...4]) // doesn't work

我怎样才能让它发挥作用?我得到的错误是:无法下标类型'[UInt8]'的值,其索引类型为'CountableClosedRange'

1 个答案:

答案 0 :(得分:3)

使用范围订阅数组不会返回数组,这是主要问题。您正尝试将ArraySlice<UInt8>类型数据设置为内部为[UInt8]类型的构造函数。

尝试这种方法:

class Test {

    init(fromArray: [UInt8]) {
        // performs work
    }
}

let myStockArray: [UInt8] = [1,2,3,4,5,6,7,8] // reference array

let test = Test(fromArray: Array(myStockArray[1...4]))