Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone滑块保存用户首选项_Iphone_Objective C_Xcode_Settings_Preferences - Fatal编程技术网

iPhone滑块保存用户首选项

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

我需要在Settings.bundle中保存滑块首选项

我正在使用以下代码写入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);
以及要从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的值,该值的浮点部分仍将丢失。如果这是故意的,那就不是问题。否则,应将该值存储为浮点值,以避免丢失用户的部分偏好。