Swift-style-guide: ¿Recomendación sobre la convención de nomenclatura de métodos delegados?

Creado en 1 may. 2016  ·  9Comentarios  ·  Fuente: raywenderlich/swift-style-guide

Entiendo que es una buena práctica pasar self a todas las llamadas a métodos delegados, como lo hace UIKit con UITableView, por ejemplo.

¿Cuál es tu recomendación para nombrarlos?

Ejemplos:

func didSelectName(forNamePicker: NamePickerViewController, name: String)

o tal vez

func didSelectNameForNamePicker(namePicker: NamePickerViewController, name: String)

o tal vez simplemente

func didSelectName(namePicker: NamePickerViewController, name: String)

Comentario más útil

Aquí está mi opinión:

(1) Esta guía frecuentemente difiere de la guía de Apple. Para ver ejemplos, consulte las secciones Naming y Protocol Naming , las cuales se refieren a Following Apple's API Design Guidelines .

(2) Apple frecuentemente pone el nombre del objeto que delega (es decir self ) _primero_. UITableViewDataSource y UITableViewDelegate muestran _muchos_ ejemplos de esto:

optional public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

optional public func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

(3) Por lo tanto, si especificamos algo (estoy indeciso sobre si deberíamos o no), creo que deberíamos seguir dichos ejemplos. Por lo tanto, iría con esta firma:

func namePickerView(namePickerView: NamePickerView, didSelectName name: String)

Todos 9 comentarios

esto tiene mas sentido para mi

func didSelectName(name: String, forNamePicker namePicker: NamePickerViewController)

También creo que depende de lo que esté haciendo este método y en qué contexto se defina.

Bueno, este es su método de delegado típico, pertenece a NamePickerViewControllerDelegate y notifica al delegado que el usuario eligió un nombre.

Me gusta tu versión, empezaré a usarla.

Creo que esta sería una buena adición a la guía de estilo (no la he visto en la versión actual, pero noté una gran cantidad de relaciones públicas pendiente).

Aquí está mi opinión:

(1) Esta guía frecuentemente difiere de la guía de Apple. Para ver ejemplos, consulte las secciones Naming y Protocol Naming , las cuales se refieren a Following Apple's API Design Guidelines .

(2) Apple frecuentemente pone el nombre del objeto que delega (es decir self ) _primero_. UITableViewDataSource y UITableViewDelegate muestran _muchos_ ejemplos de esto:

optional public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

optional public func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

(3) Por lo tanto, si especificamos algo (estoy indeciso sobre si deberíamos o no), creo que deberíamos seguir dichos ejemplos. Por lo tanto, iría con esta firma:

func namePickerView(namePickerView: NamePickerView, didSelectName name: String)

Derecha. Creo que esto se verá así para Swift 3, ya que el primer parámetro ya no se manejará de manera especial como en Swift 2.2.

func namePickerView(_ namePickerView: NamePickerView, didSelectName name: String)

Hacer lo mismo que la fuente de vista de tabla es una buena estrategia de nomenclatura.

Entendido. Gracias por la aclaración. @JRG-Developer Por lo que puedo decir, las Pautas de diseño de API de Swift a las que se refieren no hablan explícitamente sobre la denominación del método de delegado. Creo que básicamente están diciendo "sigue el ejemplo de Apple", lo que creo que no es un mal enfoque. La consistencia tiene sus beneficios.

Gracias a todos por su aporte. Creo que podemos cerrar este problema como "seguir el ejemplo de Apple".

Creo que de esto debería surgir una directriz para la designación de delegados, incluso si se trata de "seguir el ejemplo de Apple".

Gracias por tu ayuda en esto @fabienwarniez ... si quieres agregarte a la lista de colaboradores no dudes en enviar un PR.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

luki picture luki  ·  3Comentarios

Lweek picture Lweek  ·  5Comentarios

hollance picture hollance  ·  28Comentarios

jrturton picture jrturton  ·  3Comentarios

samkim102 picture samkim102  ·  4Comentarios