2015-09-02 3 views
0

Im получает странное поведение, когда я прохожу в моем array.count в мою picker.selectRow FUNC следующим образом:Swift - UIPickerView selectRow не Func принимать array.count

// savedPhotosArray contains 4 objects 
    let num = self.savedPhotosArray.count 


    println(num) 
    // prints 4 

    self.picker.selectRow(num, inComponent: 0, animated: true) 
    // picker loads index 0 ???? 

Surley это должно работать, как мой savedPhotosArray.count is Int

ответ

1

Ваша проблема заключается в том, что массив count выходит за пределы рядов выборщиков. Счетчик возвращает 4, что является количеством элементов в массиве. Но массивы начинаются с 0, это означает, что последний элемент в вашем массиве (а затем в сборщике) будет иметь индекс 3.

Итак, если вы хотите, чтобы это сработало, вам придется вычесть 1 из подсчета:

// savedPhotosArray contains 4 objects 
let lastIndex = self.savedPhotosArray.count - 1 


println(lastIndex) 
// prints 3 

self.picker.selectRow(lastIndex, inComponent: 0, animated: true) 
// picker loads index 0 ???? 

Я считаю, что подборщика загружает индекс 0, потому что вы даете ему номер из диапазона. Если вы хотите проверить, какая строка выбрана программно, вы можете использовать метод self.picker.selectedRowInComponent(0).

Если вам нужна дополнительная информация, или это все еще не работает, оставьте коммант.

+0

Да, это разобрало его. Я чувствую себя очень глупо, потому что я много работаю с массивами, и я действительно должен был это знать. Большое спасибо. – pete

Смежные вопросы