Как исправить этот код, который перебирает индексы в массиве? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь исправить этот код. На данный момент я получаю эту ошибку.

Подстрочный индекс 'subscript (_ :)' требует, чтобы UInt8.Bound соответствовал '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: &array, count:count * MemoryLayout<UInt8>.size)

let numCharacteristics = (v![0] & 0xf0) >> 4
let numDataPoints = v![0] & 0x0f

for index in 0..<numDataPoints-1 {

  datapoint = v![index] + (v![index+1] << 8)
  datapointArray.append(datapoint!)

}

1 Ответ

0 голосов
/ 11 апреля 2019

Data тип не может быть подписан на UInt8. Попробуйте:

for index in 0..<numDataPoints-1 {
      let intIndex = Int(index)
      let datapoint = v![intIndex] + (v![intIndex+1] << 8)
      datapointArray.append(datapoint)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...