Swift-style-guide: Empfehlung zur Namenskonvention für Delegatmethoden?

Erstellt am 1. Mai 2016  ·  9Kommentare  ·  Quelle: raywenderlich/swift-style-guide

Ich verstehe, dass es sich bewährt hat, self an alle Methodenaufrufe von Delegaten zu übergeben, wie dies beispielsweise UIKit mit UITableView tut.

Was ist Ihre Empfehlung für die Namensgebung?

Beispiele:

func didSelectName(forNamePicker: NamePickerViewController, name: String)

oder vielleicht

func didSelectNameForNamePicker(namePicker: NamePickerViewController, name: String)

oder vielleicht einfach

func didSelectName(namePicker: NamePickerViewController, name: String)

Hilfreichster Kommentar

Hier ist meine Meinung:

(1) Dieser Leitfaden lehnt sich häufig an die Anleitung von Apple an. Beispiele finden Sie in den Abschnitten Naming und Protocol Naming , die sich beide auf Following Apple's API Design Guidelines beziehen.

(2) Apple setzt häufig den Namen des delegierenden (dh self ) Objekts _zuerst_. UITableViewDataSource und UITableViewDelegate zeigen _viele_ Beispiele dafür:

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

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

(3) Wenn wir also irgendetwas spezifizieren (ich bin mir unschlüssig, ob wir das tun sollten oder nicht), denke ich, dass wir den genannten Beispielen folgen sollten. Dabei würde ich mit dieser Signatur gehen:

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

Alle 9 Kommentare

Das macht für mich mehr Sinn

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

Ich denke auch, dass es davon abhängt, was diese Methode tut und in welchem ​​​​Kontext sie definiert ist.

Nun, dies ist Ihre typische Delegate-Methode, sie gehört zu NamePickerViewControllerDelegate und benachrichtigt den Delegaten, dass der Benutzer einen Namen ausgewählt hat.

Ich mag Ihre Version, ich werde anfangen, sie zu verwenden.

Ich denke, dies wäre eine nette Ergänzung zum Styleguide (ich habe es in der aktuellen Version nicht gesehen, aber bemerkt, dass eine massive PR ansteht).

Hier ist meine Meinung:

(1) Dieser Leitfaden lehnt sich häufig an die Anleitung von Apple an. Beispiele finden Sie in den Abschnitten Naming und Protocol Naming , die sich beide auf Following Apple's API Design Guidelines beziehen.

(2) Apple setzt häufig den Namen des delegierenden (dh self ) Objekts _zuerst_. UITableViewDataSource und UITableViewDelegate zeigen _viele_ Beispiele dafür:

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

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

(3) Wenn wir also irgendetwas spezifizieren (ich bin mir unschlüssig, ob wir das tun sollten oder nicht), denke ich, dass wir den genannten Beispielen folgen sollten. Dabei würde ich mit dieser Signatur gehen:

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

Rechts. Ich denke, das wird für Swift 3 so aussehen, da der erste Parameter nicht mehr speziell behandelt wird wie in Swift 2.2.

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

Es ist eine gute Benennungsstrategie, dasselbe zu tun wie die Quelle der Tabellenansicht.

Verstanden. Danke für die Klarstellung. @JRG-Developer Soweit ich das beurteilen kann, sprechen die Swift-API-Designrichtlinien, auf die sie sich beziehen, nicht explizit über die Benennung von Delegate-Methoden. Ich denke, sie sagen im Grunde "Folge Apples Führung", was meiner Meinung nach kein schlechter Ansatz ist. Konsistenz hat seine Vorteile.

Vielen Dank an alle für Ihren Beitrag. Ich denke, wir können dieses Thema als "Apple folgen" schließen.

Ich denke, daraus sollte eine Richtlinie für die Benennung von Delegierten hervorgehen, auch wenn sie nach dem Motto „Folge Apples Führung“ lautet.

Vielen Dank für Ihre Hilfe bei diesem @fabienwarniez ... wenn Sie sich selbst zur Liste der Mitwirkenden hinzufügen möchten, können Sie gerne eine PR senden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jackwu95 picture jackwu95  ·  6Kommentare

sima-11 picture sima-11  ·  5Kommentare

aramezk picture aramezk  ·  9Kommentare

rayfix picture rayfix  ·  3Kommentare

xezun picture xezun  ·  6Kommentare