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

UIPickerView Methods have UIPickerView Objects as Arguments But Are Unused

我正在阅读一本 Swift OOP 书籍,并且我了解实例方法具有将在函数中使用的参数的想法。不清楚的是,在遵循 UIPickerViews 和 UITableViews 的在线教程时,有些方法将 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 没有在这些函数中使用。我想知道为什么将它们作为方法签名中的参数,但教程中很少使用这些对象?还是我想错了?

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

您所说的所有 DelegateDatasource 方法中的第一个对象不是未使用的对象,它将保存当前 UIPickerView 的引用,因此它将如果您在同一个 ViewController 中有多个 UIPickerView,则使用它。同样的事情也适用于所有其他控件,如 UITableViewUICollectionView

例如,如果您在同一个 Controller 中有 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引用,并根据它填充或访问数据