Apa pentingnya tanda #pragma? Mengapa kita membutuhkan tanda #pragma?


279

Apa tujuan dari #pragmatanda di Xcode? Apakah lokasi mereka dalam .mfile penting? Haruskah beberapa #pragmadatang sebelum yang lain?

  • Apakah mereka harus hadir?
  • Bisakah tanda baru ditambahkan? Mengapa mereka demikian? Apa yang menyebabkannya?
  • Apakah ada salahnya menghapus tanda? Apakah ada yang mau?


Saya pribadi tidak suka mereka. Serius, Anda ingin memikirkan di mana Anda harus meletakkan metode sepanjang waktu? Ada hal-hal yang jauh lebih penting untuk tetap terorganisir, seperti memperhatikan Prinsip Tanggung Jawab Tunggal
Brad Thomas

2
Untuk bahasa cepat, tanda #Pragma tidak akan berfungsi. Gunakan #MARK atau #FIXME atau #TODO periksa tautan ini untuk info lebih lanjut stackoverflow.com/a/33040068/1753005
Jayprakash Dubey

Jawaban:


315

#pragma markarahan muncul di Xcode di menu untuk akses langsung ke metode. Mereka tidak memiliki dampak pada program sama sekali.

Misalnya, menggunakannya dengan Xcode 4 akan membuat barang-barang itu muncul langsung di Jump Bar.

Ada yang khusus pragma mark -yang membuat garis.

masukkan deskripsi gambar di sini


Hargai jawabannya - dapatkah Anda mengirim jawaban yang diperbarui yang menunjukkan seperti apa tanda pragma (di menu itu atau di mana pun mereka berada sekarang) di XCode yang baru?
user7804781

Apakah ada yang setara dengan Python?
Edward Falk

@ EdwardFalk Ini spesifik untuk IDE, jadi itu benar-benar tergantung pada IDE / editor teks Anda
Michael Ozeryansky

Kompiler GCC saya memberi peringatan, foo.h: 52: 0: peringatan: mengabaikan tanda #pragma [-Wunknown-pragmas] tanda #pragma -, yang tidak fatal. Jadi gcc mungkin tidak tahu tentang '-'.
Kemin Zhou

55

#pragma markdigunakan untuk menandai grup metode sehingga Anda dapat dengan mudah menemukan dan mendeteksi metode dari Jump Bar. Ini dapat membantu Anda ketika file kode Anda mencapai sekitar 1000 baris dan Anda ingin menemukan metode dengan cepat melalui kategori dari kotak Jump.

Dalam program yang panjang menjadi sulit untuk mengingat dan menemukan nama metode. Jadi tanda pragma memungkinkan Anda untuk mengkategorikan metode sesuai dengan pekerjaan yang mereka lakukan. Misalnya, Anda menandai beberapa tag untuk Metode Protokol Tampilan Tabel, Metode AlertView, Metode Init, Deklarasi, dll.

#pragma markadalah fasilitas untuk XCode tetapi tidak berdampak pada kode Anda. Ini hanya membantu untuk membuatnya lebih mudah untuk menemukan metode saat pengkodean.


21

Dengan kata sederhana, kita dapat mengatakan bahwa #pragma mark -ini digunakan untuk mengategorikan metode, sehingga Anda dapat menemukan metode Anda dengan mudah. Ini sangat berguna untuk proyek panjang.


13

Hanya untuk menambahkan informasi yang saya cari: pragma mark adalah Xcode khusus, jadi jika Anda berurusan dengan proyek C ++ yang Anda buka di berbagai IDE, itu tidak berpengaruh di sana. Dalam Qt Creator, misalnya, ia tidak menambahkan kategori untuk metode, atau menghasilkan peringatan / kesalahan.

EDIT

#pragmaadalah arahan preprocessor yang berasal dari bahasa pemrograman C. Tujuannya adalah untuk menentukan informasi yang bergantung pada implementasi ke kompiler - yaitu, setiap kompiler dapat memilih untuk menafsirkan arahan ini seperti yang diinginkan. Yang mengatakan, itu lebih dianggap ekstensi yang tidak mengubah / mempengaruhi kode itu sendiri. Jadi penyusun mungkin mengabaikannya.

Xcode adalah IDE yang memanfaatkan #pragmadan menggunakannya dengan cara spesifiknya sendiri. Intinya, #pragmabukan Xcode dan bahkan Objective-C spesifik.


11

Ketika kita memiliki kelas besar / panjang yang mengatakan lebih dari pasangan 100 baris kode kita tidak dapat melihat semuanya di layar Monitor, maka kita tidak dapat melihat gambaran umum (juga disebut item dokumen) dari kelas kita. Kadang kami ingin melihat gambaran umum kelas kami; sekilas semua metode, konstanta, properti, dll. Anda dapat menekan Ctrl + 6 di XCode untuk melihat gambaran umum kelas Anda. Anda akan mendapatkan jenis pop-up dari Window alias Jump Bar.

Secara default, bilah lompat ini tidak memiliki bucket / bagian. Itu hanya satu daftar panjang. (Meskipun kita bisa mulai mengetik ketika bilah lompat muncul dan itu akan mencari di antara item lompatan bar). Di sinilah kebutuhanpragma mark

Jika Anda ingin membuat bagian di Jump Bar Anda, maka Anda dapat menggunakan tanda pragma dengan deskripsi yang relevan. Sekarang lihat snapshot terlampir dalam pertanyaan. Ada 'Lihat siklus hidup' dan 'Bagian yang didedikasikan ..' adalah bagian yang dibuat oleh pragma marks


10

Saat mencari doc untuk menunjukkan tentang bagaimana pragma adalah arahan untuk kompiler, saya menemukan artikel NSHipster ini yang melakukan pekerjaan dengan cukup baik.

Saya harap Anda menikmati bacaannya


7
#pragma mark - NSSecureCoding

Tujuan utama "pragma" adalah untuk referensi pengembang.masukkan deskripsi gambar di sini

Anda dapat dengan mudah menemukan metode / Fungsi dalam ribuan baris pengkodean.

Xcode 11+:

Garis Penanda di Atas

// MARK: - Properties

Marker Line di Atas dan Bawah

// MARK: - Properties - 

Marker Line hanya di bagian bawah

// MARK: Properties -

Jadi saya bisa menghapus garis? itu buang-buang ruang untuk otakku.

1
Menghapus tanda # pragma tidak akan memengaruhi fungsionalitas kode Anda, tetapi kode Anda mungkin kehilangan keterbacaannya. Jika Anda benar-benar tidak mau, Anda dapat menghapusnya.
Jeba Moses
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.