Swift-style-guide: Rekomendasi tentang konvensi penamaan metode delegasi?

Dibuat pada 1 Mei 2016  ·  9Komentar  ·  Sumber: raywenderlich/swift-style-guide

Saya mengerti ini adalah praktik yang baik untuk meneruskan self ke semua panggilan metode delegasi, seperti yang dilakukan UIKit dengan UITableView misalnya.

Apa rekomendasi Anda untuk memberi nama mereka?

Contoh:

func didSelectName(forNamePicker: NamePickerViewController, name: String)

atau mungkin

func didSelectNameForNamePicker(namePicker: NamePickerViewController, name: String)

atau mungkin sederhana

func didSelectName(namePicker: NamePickerViewController, name: String)

Komentar yang paling membantu

Inilah pendapat saya:

(1) Panduan ini sering kali mengacu pada panduan Apple. Sebagai contoh, lihat bagian Naming dan Protocol Naming , keduanya merujuk ke Following Apple's API Design Guidelines .

(2) Apple sering menempatkan nama objek pendelegasian (yaitu self ) _first_. UITableViewDataSource dan UITableViewDelegate menunjukkan _banyak_ contoh dari ini:

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

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

(3) Dengan demikian, jika kita menentukan sesuatu (saya ragu apakah kita harus atau tidak), saya pikir kita harus mengikuti contoh tersebut. Dengan demikian, saya akan pergi dengan tanda tangan ini:

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

Semua 9 komentar

Ini lebih masuk akal bagiku

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

Saya juga berpikir itu tergantung pada apa yang dilakukan metode ini dan dalam konteks apa itu didefinisikan.

Nah, ini adalah metode delegasi khas Anda, ini milik NamePickerViewControllerDelegate, dan ini memberi tahu delegasi bahwa pengguna memilih nama.

Saya suka versi Anda, saya akan mulai menggunakannya.

Saya pikir ini akan menjadi tambahan yang bagus untuk panduan gaya (saya belum melihatnya di versi saat ini tetapi melihat PR besar-besaran yang tertunda).

Inilah pendapat saya:

(1) Panduan ini sering kali mengacu pada panduan Apple. Sebagai contoh, lihat bagian Naming dan Protocol Naming , keduanya merujuk ke Following Apple's API Design Guidelines .

(2) Apple sering menempatkan nama objek pendelegasian (yaitu self ) _first_. UITableViewDataSource dan UITableViewDelegate menunjukkan _banyak_ contoh dari ini:

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

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

(3) Dengan demikian, jika kita menentukan sesuatu (saya ragu apakah kita harus atau tidak), saya pikir kita harus mengikuti contoh tersebut. Dengan demikian, saya akan pergi dengan tanda tangan ini:

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

Benar. Saya pikir ini akan terlihat seperti ini untuk Swift 3, karena parameter pertama tidak akan lagi ditangani secara khusus seperti di Swift 2.2.

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

Melakukan hal yang sama dengan sumber tampilan tabel adalah strategi penamaan yang baik.

Dipahami. Terimakasih atas klarifikasinya. @JRG-Developer Sejauh yang saya tahu Pedoman Desain API Swift yang mereka rujuk tidak secara eksplisit berbicara tentang penamaan metode delegasi. Saya pikir mereka pada dasarnya mengatakan "ikuti Apple's lead", yang menurut saya bukan pendekatan yang buruk. Konsistensi memiliki manfaatnya.

Terima kasih semuanya atas masukan Anda. Saya pikir kita bisa menutup masalah ini sebagai "ikuti Apple's lead".

Saya pikir pedoman penamaan delegasi harus keluar dari ini bahkan jika itu sejalan dengan "ikuti Apple's lead."

Terima kasih atas bantuan Anda pada @fabienwarniez ini ... jika Anda ingin menambahkan diri Anda ke daftar kontributor, silakan kirim PR.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat