Qual è il significato dei marchi #pragma? Perché abbiamo bisogno dei segni #pragma?


279

Qual è lo scopo dei #pragmamarchi in Xcode? Fa la loro posizione in.m file è importante? Alcuni dovrebbero #pragmavenire prima di tutti gli altri?

  • Devono essere presenti?
  • È possibile aggiungere nuovi marchi? Perché dovrebbero essere? Cosa lo causa?
  • C'è qualche danno nel rimuovere un marchio? Si vorrebbe mai?


Personalmente non mi piacciono. Seriamente, vuoi pensare a dove devi mettere un metodo per tutto il tempo? Ci sono cose molto più importanti da organizzare, come prestare attenzione al principio della responsabilità singola
Brad Thomas,

2
Per una lingua veloce, il segno #Pragma non funzionerà. Utilizzare #MARK o #FIXME o #TODO controllare questo link per maggiori informazioni stackoverflow.com/a/33040068/1753005
Jayprakash Dubey

Risposte:


315

#pragma markle direttive vengono visualizzate in Xcode nei menu per l'accesso diretto ai metodi. Non hanno alcun impatto sul programma.

Ad esempio, l'utilizzo con Xcode 4 farà apparire quegli elementi direttamente nella Jump Bar.

C'è uno speciale pragma mark -che crea una linea.

inserisci qui la descrizione dell'immagine


Apprezzo la risposta: saresti in grado di pubblicare una risposta aggiornata che mostra come appaiono i segni pragma (in quel menu o ovunque si trovino ora) nel nuovo XCode?
user7804781,

Esiste un equivalente di Python?
Edward Falk,

@EdwardFalk È specifico dell'IDE, quindi dipende davvero dal tuo IDE / editor di testo
Michael Ozeryansky,

Il mio compilatore GCC ha dato l'avvertimento, foo.h: 52: 0: avvertimento: ignorare il segno #pragma [-Wunknown-pragmas] #pragma mark -, che non è fatale. Quindi gcc probabilmente non conosce "-".
Kemin Zhou

55

#pragma markviene utilizzato per contrassegnare il gruppo di metodi in modo da poter trovare e rilevare facilmente i metodi dalla Jump Bar. Può aiutarti quando i tuoi file di codice raggiungono circa 1000 righe e vuoi trovare rapidamente i metodi attraverso la categoria dalla Jump box.

In un lungo programma diventa difficile ricordare e trovare il nome di un metodo. Quindi pragma mark ti consente di classificare i metodi in base al lavoro che svolgono. Ad esempio, hai taggato alcuni tag per Metodi protocollo vista tabella, Metodi AlertView, Metodi Init, Dichiarazione ecc.

#pragma markè la funzione per XCode ma non ha alcun impatto sul codice. Aiuta semplicemente a facilitare la ricerca dei metodi durante la codifica.


21

In parole semplici possiamo dire che #pragma mark -è usato per categorizzare i metodi, così puoi trovare facilmente i tuoi metodi. È molto utile per progetti lunghi.


13

Solo per aggiungere le informazioni che stavo cercando: pragma markè Xcode specifico, quindi se hai a che fare con un progetto C ++ che apri in IDE diversi, non ha alcun effetto lì. In Qt Creator, ad esempio, non aggiunge categorie per i metodi, né genera avvisi / errori.

MODIFICARE

#pragmaè una direttiva preprocessore che deriva dal linguaggio di programmazione C. Il suo scopo è quello di specificare al compilatore informazioni dipendenti dall'implementazione, ovvero ogni compilatore potrebbe scegliere di interpretare questa direttiva come desidera. Detto questo, è piuttosto considerata un'estensione che non modifica / influenza il codice stesso. Quindi anche i compilatori potrebbero ignorarlo.

Xcode è un IDE che ne sfrutta #pragmae lo usa nel suo modo specifico. Il punto è che #pragmanon è Xcode e nemmeno Objective-C specifico.


11

Quando abbiamo una classe grande / lunga che dice più di un paio di 100 righe di codice non possiamo vedere tutto sullo schermo Monitor, quindi non possiamo vedere una panoramica (chiamata anche elementi del documento) della nostra classe. Qualche volta vogliamo vedere una panoramica della nostra classe; tutti i metodi, le costanti, le proprietà ecc. a colpo d'occhio. Puoi premere Ctrl + 6 in XCode per vedere una panoramica della tua classe. Otterrai un tipo pop-up di Window aka Jump Bar.

Per impostazione predefinita, questa barra di scorrimento non ha secchi / sezioni. È solo una lunga lista. (Anche se possiamo solo iniziare a digitare quando appare la barra di salto e cercherà tra gli elementi della barra di salto). Ecco la necessità dipragma mark

Se desideri creare sezioni nella Jump Bar, puoi utilizzare i segni pragma con la relativa descrizione. Ora fai riferimento all'istantanea allegata in questione. Ci sono 'Visualizza ciclo di vita' e 'Una sezione dedicata ..' sono sezioni create da pragma marks


10

Durante la ricerca di documenti per indicare come pragma sono le direttive per il compilatore, ho trovato questo articolo di NSHipster che fa abbastanza bene il lavoro.

Spero ti piaccia la lettura


7
#pragma mark - NSSecureCoding

Lo scopo principale di "pragma" è di riferimento per gli sviluppatori.inserisci qui la descrizione dell'immagine

Puoi facilmente trovare un metodo / funzione in migliaia di righe di codifica.

Xcode 11+:

Linea di marcatura in alto

// MARK: - Properties

Linea di marcatura in alto e in basso

// MARK: - Properties - 

Linea di marcatura solo in fondo

// MARK: Properties -

Quindi posso rimuovere la linea? è uno spreco di spazio per il mio cervello.

1
La rimozione di # pragma-mark non influirà su alcuna funzionalità del codice, ma il codice potrebbe perdere la sua leggibilità. Se davvero non vuoi, puoi rimuoverlo.
Jeba Moses,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.