2013-06-07 10 views

risposta

20

Questo viene fatto tramite l'uso della macro NS_FORMAT_FUNCTION.

Diciamo che si dispone di una funzione come questa:

LOG(int level,NSString *format,...); 

Il livello è il livello di registro, mentre il formato contiene la stringa di formato e gli argomenti variabili sono i parametri per la stringa di formato.

Per garantire in fase di compilazione che il conteggio e tipo dei parametri è corretto definisce la funzione come questo:

LOG(int level,NSString *format,...) NS_FORMAT_FUNCTION(2,3); 

noti che il 2 e 3 si riferiscono alle posizione nell'elenco argomenti della stringa di formato e l'inizio della lista dei parametri variabili.

0

C non verifica per impostazione predefinita.

con LLVM il numero di parametri può essere controllata (applicata) tramite la macro NS_FORMAT_FUNCTION

tipo degli argomenti non può essere controllato. Funziona per printf in un certo modo ma var_args stesso sono di qualsiasi tipo

+0

@ i downvoters ... Non mi dispiace essere giù votati (anche se ho ragione;) ma almeno un commento almeno per favore! –

Problemi correlati