Utilizando un NSString constante como la clave para NSUserDefaults

Estoy usando NSUSerDefaults para almacenar las preferencias del usuario. Recuerdo haber leído en alguna parte que establecer las teclas como constantes es una buena idea, y estoy de acuerdo. El siguiente código es lo que tengo actualmente:

[[NSUserDefaults standardUserDefaults]
        setObject:[NSNumber numberWithInt:polygon.numberOfSides] 
           forKey:@"polygonNumberOfSides"];

Intenté cambiar esto a:

@implementation Controller

NSString const *kPolygonNumberOfSides = @"polygonNumberOfSides";

-(void)savePolygonInfo {
    [[NSUserDefaults standardUserDefaults]
            setObject:[NSNumber numberWithInt:polygon.numberOfSides] 
               forKey:kPolygonNumberOfSides];
}

Mientras esto funciona, produce "warning: passing argument 1 of 'objectForKey:' discards qualifiers from pointer target type ". Estoy interesado en mantener mi código libre de advertencias del compilador. ¿Cómo puedo solucionar esta advertencia?

Respuestas a la pregunta(5)

Su respuesta a la pregunta