¿Alguien puede explicarme esta sintaxis de declaración de método? En esta función, se devuelve el número de filas de un UIPickerView (interfaz de usuario de máquina tragamonedas en el iPhone). Según tengo entendido, el método se llama 'pickerView
' y devuelve un NSInteger.Método de sintaxis en el objetivo C
Pasa en un puntero al UIPickerview llamado 'pickerView
' ... primero, ¿por qué el método se llama con el mismo nombre que el parámetro?
A continuación está el parámetro NSInteger llamado componente que nos dice para qué componente estamos contando las filas. La lógica para decidir cuál está en el cuerpo del método.
¿Qué es 'numberOfRowsInComponent
? Parece describir el valor que estamos devolviendo, pero está en el medio de los parámetros.
- (NSInteger) pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
if (component == kStateComponent)
return [self.states count];
return[self.zips count];
}
+1 para una respuesta excelente Sugeriría cambiar "fábrica" por "clase" en su primer punto, ya que el "+" indica oficialmente un método de clase. Ocurre que muchos métodos "+" son métodos de fábrica, pero esa no es la definición correcta .! –
Gracias una cuestión adicional: Si se va a mensaje de un myObject objeto con el foo las variables y bar como usted mostró: [myObject pickerView: foo numberOfRowsInComponent: bar]; ¿el pickerView se refiere al nombre de método o parámetro? – Craig
Ninguno. Es un buen estilo para referirse tanto al nombre del método como al parámetro, pero el nombre completo del método es realmente pickerView: numberOfRowsInComponent :. Si tratara de invocar pickerView :, recibiría un error de tiempo de ejecución, ya que el método no existiría. – locriani