Я реализовал весь ваш код в виде демонстрационного примера, и он работает следующим образом
// ----------------- .m file
#import "SliderDemoViewController.h"
#import "SettingsData.h"
@implementation SliderDemoViewController
-(IBAction)sensitivitySliderValueChanged:(id)sender
{
[self updateSensitivity];
}
-(void)updateSensitivity{
settingsData.sensitivitySettingValue = [NSNumber numberWithFloat:sensitivitySlider.value];
NSLog(@"The Slider Value is: %1.1f", [settingsData.sensitivitySettingValue floatValue]);
NSLog(@"sensitivitySlider.value= %f",sensitivitySlider.value);
NSLog(@"sensitivitySlider.minimumValue= %f",sensitivitySlider.minimumValue);
NSLog(@"sensitivitySlider.maximumValue= %f",sensitivitySlider.maximumValue);
}
@end
// ----------. H file
#import <UIKit/UIKit.h>
@class SettingsData;
@interface SliderDemoViewController : UIViewController {
IBOutlet UISlider* sensitivitySlider;
SettingsData* settingsData;
}
-(IBAction)sensitivitySliderValueChanged:(id)sender;
@end
Теперь здесь SettingsData - это класс модели данных, объявленный как
// -----------
@interface SettingsData : NSObject {
NSNumber* sensitivitySettingValue;
}
@property (nonatomic, retain) NSNumber *sensitivitySettingValue;
@end
Теперь вывод updateSensitivity будет выглядеть примерно так:
2011-11-22 09:59:57.259 SliderDemo[691:207] The Slider Value is: 0.0
2011-11-22 09:59:57.260 SliderDemo[691:207] sensitivitySlider.value= 5.581448
2011-11-22 09:59:57.261 SliderDemo[691:207] sensitivitySlider.minimumValue= 1.000000
2011-11-22 09:59:57.261 SliderDemo[691:207] sensitivitySlider.maximumValue= 10.000000
Если вы посмотрите на первую строку логов он всегда будет выводить 0,00 , потому что мы нигде не выделили объект settingsData.
Единственная точка, которую я нахожу , возможно, вы делаете что-то неправильно, не создавая этот объект как
if(!settingsData)
{
settingsData = [[SettingsData alloc]init];
}
, если вы не выделите этот объект, вы всегда получите 0 в качестве значения с плавающей запятой, выполняя NSLog для значения для его свойства чувствительностиSettingValue.В случае, если вы разместили этот объект где-то, убедитесь, что вы распределили его много, прежде чем пытаться установить или получить какое-либо значение переменной его члена.