iPhone слайдер сохранить настройки пользователя - PullRequest
0 голосов
/ 12 декабря 2010

Мне нужно сохранить настройки слайдера в моем Settings.bundle.

Я использую следующий код для записи в файл Settings.bundle:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:mySlider.value forKey:@"TimerSliderKey"];
[defaults synchronize];

И следующий код для чтения из Settings.bundle:

NSUserDefaults *defaults2 = [NSUserDefaults standardUserDefaults];
int valueForSlider = [defaults2 integerForKey:@"TimerSliderKey"];
NSLog(@"The saved slider value is %@" , valueForSlider);

Этот код не работает. Может кто-нибудь дать мне какой-нибудь код замены, который я мог бы использовать?

Ответы [ 3 ]

5 голосов
/ 12 декабря 2010

Ваша проблема здесь:

NSLog(@"The saved slider value is %@" , valueForSlider);

Вам необходимо использовать спецификатор формата %d, %@ - это спецификатор формата для отправки сообщения description в аргумент.

NSLog(@"The saved slider value is %d" , valueForSlider);

Вот список спецификаторов формата:

alt text

См. Руководство по программированию строки для получения дополнительной информации.

1 голос
/ 12 декабря 2010

Другая, и, возможно, настоящая проблема заключается в том, что значение UISlider по умолчанию составляет от 0,0 до 1,0.Сохраняя его как целое число, вы будете видеть только 0 или 1. Из-за усечения.

Вместо этого вы должны хранить его как плавающую точку, чтобы полностью сохранить значение ползунка.

0 голосов
/ 23 декабря 2012

используйте это ...

[**yourslider** addTarget:self action:@selector(sliderValueChanged:)
                           forControlEvents:UIControlEventValueChanged];

if ([[NSUserDefaults standardUserDefaults]floatForKey:@"value"]) {

    yourslider.value= [[NSUserDefaults standardUserDefaults]floatForKey:@"value"];

  }


**--save your value in this method**

-(IBAction)sliderValueChanged:(UISlider *)sender
{

    NSLog(@"slider value = %f", sender.value);


   [[NSUserDefaults standardUserDefaults]setFloat:sender.value forKey:@"value"];

}
...