Я пытаюсь заполнить массив с числами с увеличением 0,1 каждого типа: [0.1,0.2,0.3 ...]Swift - фатальная ошибка: Индекс массива вне диапазона
Этот код дает мне ошибка: fatal error: Array index out of range
. Что мне не хватает? Я что-то признаю что-то не так.
Я сохраню его в структуре типа Double.
Мой код
import UIKit
class PrecoDomicilioViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource{
@IBOutlet var euros: UIPickerView!
var pickerData:[Double] = []
override func viewDidLoad() {
super.viewDidLoad()
euros.delegate = self
euros.dataSource = self
for var i = 0; i <= 200; i++
{
pickerData[i] += 0.1
}
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return "\(pickerData[row])"
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
restaurante.portes = pickerData[row]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
}
UPDATE: Наконец сделал это, но есть это странное число между 6 и 10.
Что линия делает ошибки происходят на? – zaph
pickerData [i] + = 0.1 –
Вам действительно нужен отдельный вопрос. Подсказка: числа с плавающей запятой не могут точно представлять большинство десятичных чисел (не целое число), это то, что вы видите здесь. Это проблема при смене баз, здесь от базы 10 до базы 2, которую использует Double. Для точных десятичных чисел, например, для денег и калькуляторов, используйте 'NSDecimalNumber'. – zaph