Ios UIPickerView方法将UIPickerView对象作为参数,但未使用

Ios UIPickerView方法将UIPickerView对象作为参数,但未使用,ios,swift,uitableview,oop,uipickerview,Ios,Swift,Uitableview,Oop,Uipickerview,我正在读一本Swift OOP的书,我理解了实例方法具有参数的想法,这些参数将在函数中使用。不清楚的是,在遵循UIPickerView和UITableView的在线教程时,有些方法将UIPickerView或UITableView对象作为参数,但未在函数中使用 例如: func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { // Return the

我正在读一本Swift OOP的书,我理解了实例方法具有参数的想法,这些参数将在函数中使用。不清楚的是,在遵循UIPickerView和UITableView的在线教程时,有些方法将UIPickerView或UITableView对象作为参数,但未在函数中使用

例如:

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        // Return the number of rows of data
        return gamesList.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

        return gamesList[row].name
    }
在这些函数中不使用获取UIPickerView对象的第一个参数pickerView。我想知道为什么在方法的签名中将它们作为参数,但在教程中很少使用这些对象?还是我想的不对


提前感谢您提供的帮助,以便更好地理解。

您正在讨论的所有
委托
数据源
方法中的第一个对象不是未使用的对象,它将保存当前
UIPickerView
的引用,因此,如果在同一个
ViewController
中有多个
UIPickerView
,则将使用它。同样的事情也适用于所有其他控件,如
UITableView
UICollectionView

例如,如果在同一
控制器中有2个
UIPickerView
,则可以通过在
UIPickerView
方法中比较来填充
UIPickerView

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    if pickerView == firstPickerView {
         return gamesList1.count
    }
    //else return for second pickerView
    return gamesList2.count         
}
因此,您需要比较
UIPickerView
的所有方法中的
pickerView
引用,并根据它填充或访问数据