#swift #subscript #uint8array
#swift #индекс #uint8array
Вопрос:
Итак, проблема, с которой я сталкиваюсь, заключается в том, что у меня есть объект с аргументом в init(), для которого требуется [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: myStockArray[1...4]) // doesn't work
Как я могу заставить это работать? Ошибка, которую я получаю: невозможно проиндексировать значение типа ‘[UInt8]’ с индексом типа ‘CountableClosedRange’
Ответ №1:
Подписка на массив с диапазоном не возвращает массив, и это основная проблема. Вы пытаетесь установить 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]))
Комментарии:
1. Ах, вот оно что. Спасибо!