Вы выделяете свой массив следующим образом:
var tempArr = [Double]()
Это просто создание массива, но хранилище не выделяется. Если вы пытаетесь получить доступ к массиву с помощью индекса элемента, вы пытаетесь получить доступ к нераспределенной памяти.
Если вам необходимо предварительно выделить массив, вы можете сделать это следующим образом:
let tmpArray = [Double](count: 8, repeatedValue: 0.0)
Лучше просто использовать метод добавления массива Array для добавления ваших элементов.
Есть некоторые другие проблемы с вашим кодом, которые вы, возможно, захотите устранить. Вы слепо полагаете, что число будет действительным:
let number = Double(readings[i])
Подумайте об использовании if let number
или guard let number
и обработайте неверные данные должным образом.
Вам также следует рассмотреть возможность присвоения 8
константе, поскольку вы используете это магическое число несколько раз в своем коде.
Надеюсь, это поможет!