iPhone滑块保存用户首选项
我需要在Settings.bundle中保存滑块首选项 我正在使用以下代码写入Settings.bundle:iPhone滑块保存用户首选项,iphone,objective-c,xcode,settings,preferences,Iphone,Objective C,Xcode,Settings,Preferences,我需要在Settings.bundle中保存滑块首选项 我正在使用以下代码写入Settings.bundle: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setInteger:mySlider.value forKey:@"TimerSliderKey"]; [defaults synchronize]; NSUserDefaults *defaults2 = [NSUserDefau
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:mySlider.value forKey:@"TimerSliderKey"];
[defaults synchronize];
NSUserDefaults *defaults2 = [NSUserDefaults standardUserDefaults];
int valueForSlider = [defaults2 integerForKey:@"TimerSliderKey"];
NSLog(@"The saved slider value is %@" , valueForSlider);
以及要从Settings.bundle读取的以下代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:mySlider.value forKey:@"TimerSliderKey"];
[defaults synchronize];
NSUserDefaults *defaults2 = [NSUserDefaults standardUserDefaults];
int valueForSlider = [defaults2 integerForKey:@"TimerSliderKey"];
NSLog(@"The saved slider value is %@" , valueForSlider);
此代码不起作用。有人能给我一些我可以使用的替换代码吗?您的问题在这里:
NSLog(@"The saved slider value is %@" , valueForSlider);
您需要使用%d
格式说明符,%@
是将说明
消息发送到参数的格式说明符
NSLog(@"The saved slider value is %d" , valueForSlider);
以下是格式说明符列表:
有关更多信息,请参阅。您的问题在于:
NSLog(@"The saved slider value is %@" , valueForSlider);
您需要使用%d
格式说明符,%@
是将说明
消息发送到参数的格式说明符
NSLog(@"The saved slider value is %d" , valueForSlider);
以下是格式说明符列表:
有关更多信息,请参见。另一个问题,也许是真正的问题,是UISlider的值默认范围为0.0到1.0。将其存储为整数时,由于截断,您将只能看到0或1
您应该将其存储为浮点,以完全保留滑块的值。另一个问题,也许是真正的问题,是UISlider的值默认范围为0.0到1.0。将其存储为整数时,由于截断,您将只能看到0或1
您应该将其存储为浮点,以完全保留滑块的值。使用这个…
[**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"];
}
使用这个…
[**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"];
}
感谢您的输入(+1),我之前已将时间设置为0.0到10.0。然后您将只获得0,1,2,3…10的值,该值的浮点部分仍将丢失。如果这是故意的,那就不是问题。否则,应将该值存储为浮点值,以避免丢失用户的部分首选项。感谢您的输入(+1),我之前已将时间设置为0.0到10.0。然后您将只获得0,1,2,3…10的值,该值的浮点部分仍将丢失。如果这是故意的,那就不是问题。否则,应将该值存储为浮点值,以避免丢失用户的部分偏好。