사용자 기본 설정을 저장하기 위해 NSUSerDefaults를 사용하고 있습니다. 나는 어딘가에서 키를 상수로 설정하는 것이 좋은 생각이라는 것을 읽은 것을 기억하며 동의합니다. 다음 코드는 현재 내가 가지고있는 것입니다.
[[NSUserDefaults standardUserDefaults]
setObject:[NSNumber numberWithInt:polygon.numberOfSides]
forKey:@"polygonNumberOfSides"];
이것을 다음과 같이 변경하려고 시도했습니다.
@implementation Controller
NSString const *kPolygonNumberOfSides = @"polygonNumberOfSides";
-(void)savePolygonInfo {
[[NSUserDefaults standardUserDefaults]
setObject:[NSNumber numberWithInt:polygon.numberOfSides]
forKey:kPolygonNumberOfSides];
}
작동하는 동안 " warning: passing argument 1 of 'objectForKey:' discards qualifiers from pointer target type
" 이 생성 됩니다. 내 코드를 컴파일러 경고로부터 자유롭게 유지하고 싶습니다. 이 경고를 어떻게 수정할 수 있습니까?
NSString * const foo
NSString
불변하고 포인터가 불변 하기 때문에 작동하므로 결코 올바르게 변경할 수 없습니까? 또한const
암시 적으로static
(컴파일러 최적화) C ++ 에서 호출 할 필요가 없습니다. 여기에서도 마찬가지입니까?