#arrays #swift #bluetooth-lowenergy
#массивы #swift #bluetooth-lowenergy
Вопрос:
Я пытаюсь исправить этот код. На данный момент я получаю эту ошибку.
Для индекса ‘subscript(_:)’ требуется, чтобы ‘UInt8.Привязанный ‘ соответствует ‘FixedWidthInteger’
и
Нижний индекс ‘subscript(_:)’ требует, чтобы ‘UInt8’ соответствовал ‘RangeExpression’
Не уверен, что означают ошибки в этом контексте.
let v = characteristic.value;
let count = (v?.count)! / MemoryLayout<UInt8>.size
var array = [UInt8](repeating: 0, count: count)
v?.copyBytes(to: amp;array, count:count * MemoryLayout<UInt8>.size)
let numCharacteristics = (v![0] amp; 0xf0) >> 4
let numDataPoints = v![0] amp; 0x0f
for index in 0..<numDataPoints-1 {
datapoint = v![index] (v![index 1] << 8)
datapointArray.append(datapoint!)
}
Ответ №1:
Data
тип не может быть подписан на UInt8
. Попробуйте:
for index in 0..<numDataPoints-1 {
let intIndex = Int(index)
let datapoint = v![intIndex] (v![intIndex 1] << 8)
datapointArray.append(datapoint)
}