다음은 스테퍼를 사용하여 myLabel의 값을 설정하는 다음 코드입니다. 값을 NSUserDefaults에 저장하도록 설정했습니다.UIStepper - NSUserDefaults에서 값을 설정하십시오.
1) 또한 스테퍼 값을 레이블에 넣은 것과 같은 숫자로 설정해야합니다. 누군가 제발 할 수있는 방법을 조언 해 주시겠습니까? (필자는이 코드가 있어야한다고 생각하는 코드에 주석을 추가했습니다.)
2) 실제로 설정 한 saveString을로드하기 전에 확인하고 싶지 않은 경우 기본값을 설정하십시오. 또한 이것을 달성하는 방법을 조언 해 줄 수 있습니까?
감사합니다. 다음
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadString = [defaults objectForKey:@"saveString"];
self.myLabel.text = loadString;
// Need to set the stepper value to that in loadString
}
- (IBAction)stepChanged:(id)sender {
NSString *saveString = [NSString stringWithFormat:@"%d",
[[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveString forKey:@"saveString"];
[defaults synchronize];
self.myLabel.text = saveString;
}
는 I 코드를 업데이트 -
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *loadNumber = [defaults objectForKey:@"saveNumber"];
self.myLabel.text = [NSString stringWithFormat:@"%@",loadNumber];
UIStepper *stepper = [[UIStepper alloc] init];
stepper.value = [NSNumber numberWithDouble:loadNumber];
}
- (IBAction)stepChanged:(id)sender {
NSNumber *saveNumber = [NSNumber numberWithDouble:[(UIStepper *)sender value]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveNumber forKey:@"saveNumber"];
[defaults synchronize];
self.myLabel.text = [NSString stringWithFormat:@"%@",saveNumber];
}
그러나 라인 'stepper.value = numberWithDouble의 NSNumber : loadNumber];' 오류 ''NSNumber * __ strong '을'호환되지 않는 유형 'double' '매개 변수로 보내는 오류가 있습니다. 스테퍼는 이중을 허용하지만 설정을 잘못했는지 확신 할 수 없습니다.
달성 해야하는 것은 다음과 같습니다 : - 1) saveNumber에 대해 NSUserDefaults에 기본값이 설정되어 있습니다. 사용자가 변형 할 때까지 사용됩니다. 2)로드 또는보기에 saveNumber를 사용하여 값을 설정하십시오. 모두 stepper.value 및 myLabel. 3) 스테퍼 변경할 때, 값이 myLabel으로 업데이트되며, NSUserDefaults saveNumber도 업데이트되어 있는지 확인합니다.
사람이 내가 잘못 가고 어디 조언, 내 코드를 수정 도울 수 제발?
마지막으로 입력 한대로 깨달은 것은 최종 응용 프로그램에서 NSUserDefaults savedNumber 값을 사용할 뷰 컨트롤러에이 설정을 적용한다는 것입니다. 이것을 염두에두고, savedNumber가이 viewController뿐만 아니라 다른 값을 사용할 수 있도록하는 방법을 알려 주실 수 있습니까?
감사합니다. 질문 1에 대해서는
stepper.value = '[loadNumber doubleValue];' 트릭을해야합니다. NSUserDefaults는 정보가 로컬 파일 시스템에 저장되기 때문에 다른 모든 뷰 컨트롤러에서도 사용할 수 있습니다. 현재 다른 뷰 컨트롤러에서 정보를 얻으십시오. – dehlen
@dehlen http://stackoverflow.com/questions/20708074/ios-uistepper-nsuserdefaults-how-to-manage-them-together-and-use-a-double을 살펴보십시오. 나는 당신이 지금 말했듯이 그 문제를 가지고 있지만 여전히 문제가 있습니다. – MrNeilM