iPhone滑块保存用户偏好

发布于 2024-10-07 15:19:53 字数 541 浏览 1 评论 0原文

我需要在 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);

此代码不起作用。有人可以给我一些我可以使用的替换代码吗?

I need to save a slider preference in my Settings.bundle.

I'm using the following code to write to the Settings.bundle:

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

And the following code to read from the Settings.bundle:

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

This code does not work. Can someone give me some replacement code that I could use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

始终不够爱げ你 2024-10-14 15:19:53

您的问题在这里:

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

您需要使用 %d 格式说明符,%@ 是将 description 消息发送到参数的格式说明符。

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

以下是格式说明符列表:

alt text

请参阅 字符串编程指南了解更多信息。

Your problem is here:

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

You need to use the %d format specifier, %@ is the format specifier to send the description message to the argument.

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

Here's a list of format specifiers:

alt text

See the String Programming Guide for more information.

菩提树下叶撕阳。 2024-10-14 15:19:53

另一个(也许是真正的)问题是 UISlider 的默认值范围是 0.0 到 1.0。将其存储为整数时,由于截断,您只能看到 0 或 1。

您应该将其存储为浮点,而不是完全保留滑块的值。

The other, and perhaps the real, problem is that UISlider's value ranges from 0.0 to 1.0 by default. Storing it as an integer, you will only ever see 0 or 1 due to truncation.

You should store it as a floating point instead to fully preserve the value of the slider.

如歌彻婉言 2024-10-14 15:19:53

使用这个...

[**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"];

}

use this one...

[**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"];

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文