Cuál es la importancia del posicionamiento de la palabra claveImportancia const posicionamiento de palabras clave en las declaraciones de variables
const
al declarar una variable en Objective-C, por ejemplo:
extern const NSString * MY_CONSTANT;
frente
extern NSString * const MY_CONSTANT;
El uso de la primera versión en asignaciones produce advertencias sobre "calificadores fr om puntero tipo de destino "se descarta así que estoy asumiendo que la segunda versión asegura que la dirección del puntero sigue siendo la misma. Realmente apreciaría una respuesta más definitiva. ¡Muchas gracias de antemano!
ezod es correcto - Sin embargo, no veo el razonamiento al agregar la const, cuando un NSString se declara como una constante de cadena. No puede liberar un NSString y no puede cambiarlo (no es mutable) ... entonces ¿por qué molestarse con la const? –
Nadie usa 'const NSString * blah' porque incluso un NSString inmutable podría necesitar manipular sus ivars (por ejemplo, el almacenamiento en caché), y un NSString también podría ser un NSMutableString. Usas 'NSString * const blah' para que parte de tu otro código no lo haga' if (MY_CONST_STRING = local_string) 'y un complemento malicioso no pueda reescribir todas tus constantes para que sea' @ "I LIKE MONKEYS" '. –