Swift - UIPickerView selectRow func没有使用array.count

时间:2015-09-02 16:12:33

标签: swift

当我将array.count传入我的picker.selectRow函数时,我的行为变得奇怪,如下所示:

    // 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是一个Int

1 个答案:

答案 0 :(得分: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)

如果您需要更多信息,或者这仍然无法发挥作用。