Di Objective C, saya dapat menggunakan #pragma mark
untuk menandai bagian dari kode saya di navigator simbol. Karena ini adalah perintah preprocessor C, itu tidak tersedia di Swift. Apakah ada alasan untuk ini di Swift, atau apakah saya harus menggunakan komentar jelek?
swift
documentation
Arbitur
sumber
sumber
Jawaban:
Kamu bisa menggunakan
// MARK:
Ada juga diskusi bahwa penggunaan liberal ekstensi kelas mungkin merupakan praktik yang lebih baik. Karena ekstensi dapat mengimplementasikan protokol, misalnya Anda dapat meletakkan semua metode delegasi tampilan tabel dalam ekstensi dan mengelompokkan kode Anda pada tingkat yang lebih semantik daripada
#pragma mark
yang mampu dilakukan.sumber
// MARK:
,// TODO:
dan// FIXME
di sumber Swift dan mendaftar di bilah lompat. (BTW, sudah melakukannya di (Obj) sumber C -#pragma mark
bukan satu-satunya cara.) Dan ya, Anda masih dapat menambahkan-
AndaMARK
untuk meletakkan pemisah di menu.MARK
bekerja sekarang, menggunakan ekstensi untuk mengelompokkan beberapa jenis kode terkait semantik (terutama implementasi protokol) masih bisa bermanfaat. IMHO itu membaca jauh lebih baik untuk memiliki deklarasi kesesuaian protokol Anda tepat di sebelah metode yang mengimplementasikannya, bukan 5 deklarasi protokol di bagian atas file dan 50 implementasi metode terkait yang tersebar secara acak di suatu tempat di bawah ini.#pragma mark
.// MARK: -
hanya pemisah,// MARK: - stuff
memberi Anda pemisah dan header, dan// MARK: - stuff -
memberi Anda pemisah, header, dan pemisah lainnya semua dalam satu baris komentar.Hingga Xcode 5 arahan preprosesor
#pragma mark
ada.Dari Xcode 6 aktif, Anda harus menggunakan
// MARK:
Fitur-fitur preprocessor ini memungkinkan untuk membawa beberapa struktur ke kotak drop down fungsi editor kode sumber.
beberapa contoh :
-> akan didahului oleh pembagi horizontal
-> menempatkan 'teks Anda masuk ke sini' dalam huruf tebal di daftar drop down
-> menempatkan 'teks Anda masuk ke sini' dicetak tebal dalam daftar drop-down, didahului oleh pembagi horizontal
perbarui: menambahkan tangkapan layar karena beberapa orang tampaknya masih memiliki masalah dengan ini:
sumber
// MARK: - text
untuk saya dan daftar drop-down menunjukkan MARK: teks bukan hanya teks .Bagi mereka yang tertarik menggunakan ekstensi vs tanda pragma (seperti yang disebutkan dalam komentar pertama), berikut adalah cara menerapkannya dari Insinyur Swift:
Ini juga belum tentu praktik terbaik, tetapi ini adalah bagaimana Anda melakukannya jika Anda mau.
sumber
typealias
. Sebagai contohtypealias DataSource = SwiftTableViewController
. Kemudianextension Datasource {}
UITableViewController
bukan protokol, ini adalah kelas. Anda mungkin bermaksudUITableViewControllerDataSource
, tetapi ini bukan pola yang digunakan dalam contoh.extension
mendapatkan header dengan protokol, sepertiextension SwiftTableViewController : UITableViewController
, akan lebih mudah dibaca untuk melihat mengapa Anda menambahkan ekstensi itu ke kelas.extension SwiftTableViewController : UITableViewDelegate { .. }
danextension SwiftTableViewController : UITableViewDatasource { .. }
Pragma mark - [SOME TEXT HERE]
digunakan dalam Objective-C untuk mengelompokkan beberapa fungsi bersama dengan memisahkan garis.Di Swift Anda dapat mencapai ini dengan menggunakan
MARK, TODO OR FIXME
saya. MARK:
//MARK: viewDidLoad
Ini akan membuat garis horizontal dengan fungsi yang dikelompokkan di bawah viewDidLoad (ditunjukkan pada tangkapan layar 1)
ii. MELAKUKAN :
//TODO: - viewDidLoad
Ini akan mengelompokkan fungsi di bawah TODO: - Kategori viewDidLoad (ditunjukkan pada tangkapan layar 2)
aku aku aku. PERBAIKI AKU :
//FIXME - viewDidLoad
Ini akan mengelompokkan fungsi di bawah FIXME: - kategori viewDidLoad (ditunjukkan pada tangkapan layar 3)
Periksa dokumentasi apel ini untuk detailnya.
sumber
Dokumentasi Resmi
Dokumen resmi Apple tentang Bilah Lompat Xcode: Tambahkan anotasi kode ke bilah lompat
Jump Bar Screenshot untuk Contoh Kode
Perilaku dalam Xcode 10.1 dan macOS 10.14.3 (Mojave)
Perilaku dalam Xcode 10.0 dan macOS 10.13.4 (High Sierra)
Perilaku dalam Xcode 9.4.1 dan macOS 10.13.0
Diskusi
!!!:
dan???:
terkadang tidak dapat ditampilkan.sumber
Dalam kode Objective-C Xcode mendeteksi komentar seperti
// MARK: - foo
yang sedikit lebih portabel daripada#pragma
. Tapi ini sepertinya tidak diambil juga (belum?).Sunting: Diperbaiki dalam Xcode 6 beta 4.
sumber
// MARK: -
ini tidak berfungsi untuk saat ini.// MARK:
sepertinya tidak berfungsi. Saya sudah mencoba dengan & tanpa spasi, dengan dan tanpa titik dua, semua-topi dan campuran (Mark). Apakah ada trik? Apakah saya perlu mengaktifkan pref atau sesuatu?Saya pikir
Extensions
itu cara yang lebih baik#pragma mark
.Kode sebelum menggunakan
Extensions
:Kode setelah menggunakan
Extensions
:sumber
extension
saja tidak benar-benar menonjol dalam menu dropdown kontrol remah roti Xcode.Xcode 8 sekarang menanganinya sebagai diikuti dan muncul seperti ini di dropdown metode:
sumber
// ARK:
bagi saya di Xcode 8!!!
dan???
sintaks tidak muncul untuk dapat bekerja pada Xcode 8.3.3 ...Dikonfirmasi dengan Apple Engineer di lab Swift pagi ini di WWDC bahwa saat ini tidak ada #pragma atau yang setara, mereka menganggap ini bug, dan akan segera tiba, jadi saya menduga beta 2, saya harap.
Pokoknya, ini jalannya.
Xcode sekarang mendukung // MARK :, // TODO: dan // landmark FIXME untuk membubuhi keterangan kode Anda dan mencantumkannya di bilah lompat
sumber
Ada Tiga opsi untuk ditambahkan
#pragma_mark
di Swift:1)
// MARK: - your text here -
2)
// TODO: - your text here -
3)
// FIXME: - your text here -
Catatan: Penggunaan
-
untuk menambahkan pemisahsumber
Menggunakan
atau
Ini akan memberikan garis di atas tanda pragma, membuatnya lebih mudah dibaca.
Untuk memudahkan, tambahkan saja
ke cuplikan kode Anda.
Cara alternatif -
Gunakan dengan cara ini
Ini tidak hanya akan menambah tanda (seperti tanda pragma) tetapi juga memisahkan kode dengan baik.
sumber
//MARK
format (tanpa spasi) dan menyarankan// MARK: (text)
( satu spasi antara//
dan MARK, tidak ada ruang antaraMARK
dan:
, dan satu spasi antara:
dan nama bagian)Tambahkan garis antara titik dua dan deskripsi Anda untuk menyisipkan garis pemisah. Ini membantu mengatur lebih banyak kode Anda. Kode dan tangkapan layar di atas memanfaatkan komentar MARK dengan garis yang disertakan.
Ini hanya berfungsi dengan komentar MARK.
sumber
Anda juga mungkin tertarik dengan arahan kompiler Swift 4.2 / XCode 10 suka
dan
Ini mungkin berguna ketika Anda benar-benar tidak ingin ketinggalan sesuatu.
sumber
Pemrogram profesional harus menggunakan tag ini untuk kode yang baik. Ini juga bagus untuk kerja tim.
Sangat mudah untuk menemukan metode seperti ini
sumber
Dalam Xcode 11 mereka menambahkan minimap yang dapat diaktifkan
Editor -> Minimap
.Minimap akan menampilkan setiap teks tanda untuk orientasi cepat dalam kode. Setiap tanda ditulis seperti
// MARK: Variables
sumber
//MARK:
tidak tampak bekerja untuk saya di Xcode 6.3.2. Namun, inilah yang saya lakukan untuk membuatnya bekerja :1) Kode:
2) Dalam
jump bar
apa - apa tampaknya tidak berubah ketika menambahkan//MARK
: komentar. Namun, jika saya mengklik nama paling kanan di bilah lompat, dalam kasus saya dikatakanMainWindowController(with a leading C icon)
, maka jendela sembulan akan menampilkan yang menunjukkan efek dari // MARK: komentar, yaitu tajuk yang mengatakan "Metode keren saya":3) Saya juga memperhatikan bahwa jika saya mengklik salah satu metode dalam kode saya, maka metode tersebut menjadi entri paling kanan di bilah lompat. Untuk bisa
MainWindowController(with a leading C icon)
menjadi entri paling kanan di panel lompat, saya harus mengklik spasi putih di atas metode saya.sumber
Apple menyatakan dalam versi terbaru dari Building Cocoa Apps ,
Karakter # tampaknya masih menjadi cara Anda bekerja dengan berbagai konfigurasi bangunan dan hal-hal seperti itu, tetapi sepertinya mereka berusaha mengurangi kebutuhan Anda akan sebagian besar pemrosesan awal dalam nada pragma dan meneruskan Anda ke fitur bahasa lainnya secara bersamaan. Mungkin ini untuk membantu pengoperasian Playgrounds dan REPL berperilaku sedekat mungkin dengan kode yang sepenuhnya dikompilasi.
sumber
sumber
Coba ini:
sumber
Tanda Pragma adalah cara untuk meningkatkan keterbacaan kode Anda. Komentar pragma akan muncul seperti tag pada jumpbar Xcode.
Contoh: Dalam kode,
Beginilah tampilannya di bilah lompat Xcode.
sumber