Qual è il significato del posizionamento della parola chiaveImportanza posizionamento parola chiave const in dichiarazioni di variabili
const
quando si dichiara una variabile in Objective-C, per esempio:
extern const NSString * MY_CONSTANT;
contro
extern NSString * const MY_CONSTANT;
L'utilizzo della prima versione in assegnazioni genera avvisi relativi a "qualificazioni fr om pointer target type "viene scartato, quindi presumo che la seconda versione assicuri che l'indirizzo del puntatore rimanga lo stesso. Gradirei davvero una risposta più definitiva. Molte grazie in anticipo!
ezod è corretto - Tuttavia, non vedo il ragionamento nell'aggiungere il const, quando un NSString è dichiarato come costante di stringa. Non è possibile rilasciare una NSString e non è possibile cambiarla (non è modificabile) ... quindi perché preoccuparsi di w/const? –
Nessuno usa 'const NSString * blah' perché anche una NSString immutabile potrebbe dover manipolare i suoi ivars (ad esempio, la memorizzazione nella cache) e una NSString potrebbe anche essere una NSMutableString. Usi 'NSString * const blah' in modo che alcuni dei tuoi altri codici non facciano' if (MY_CONST_STRING = local_string) 'e un plugin dannoso non può riscrivere tutte le tue costanti per essere' @ 'I LIKE MONKEYS' '. –