What does the const specifier do, before a pointer to object?
If I have a C-string like this: const char* str= "hello"; I know well that I can't change any character of the string because the pointer is const. But if I have this: - (CLLocationDistance)distanceFromLocation:(const CLLocation *)location I can still mutate the object state using it's methods. If the pointer is to a NSMutableString, I'm still able to mutate it. Then what does the const stand for? In that method declaration, location is a pointer to a constant CLLocation . But when you send a message to the location object, the const -ness is not preserved; the method that handles the message