Я сделал ползунок RGB, и я хочу сохранить значение ползунка и цвет фона двух меток в NSUserDefaults. Сохранение слайдераValue отлично работает, но для цвета фона метки мой код не работает. Я правильно написал свой код?UILabel background Цвет NSUserDefaults
Информация: цвет фона с метки1 должен быть сохранен в NSUserDefaults.
Эта линия
NSString* label1 = self.label1.backgroundColor;
производит эту ошибку
несовместимые типы указателей intializing NSString с выражением типа UIColor
и эта линия
[defaults setObject:label1 forKey:@"label1"];
производит эту ошибку
местного декларирование'label1'hides экземпляра переменной
Вот мой .m файл:
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
self.label1.backgroundColor =[defaults objectForKey:@"label1"];
self.labelRot.text = [defaults objectForKey:@"labelRot"];
self.labelBlau.text = [defaults objectForKey:@"labelBlau"];
self.labelGruen.text = [defaults objectForKey:@"labelGruen"];
self.sliderRot.value = [defaults floatForKey:@"sliderRot"];
self.sliderBlau.value = [defaults floatForKey:@"sliderBlau"];
self.sliderGruenn.value = [defaults floatForKey:@"sliderGruenn"];
//labelRot.text = [NSString stringWithFormat:@"%0.0f", _sliderRot.value];
//labelGruen.text = [NSString stringWithFormat:@"%0.0f", _sliderGruenn.value];
//labelBlau.text = [NSString stringWithFormat:@"%0.0f", _sliderBlau.value];
// Do any additional setup after loading the view, typically from a nib.
- (IBAction)red:(id)sender {
if (sender == _sliderRot) {
_labelRot.text = [NSString stringWithFormat:@"%0.0f", _sliderRot.value];
[self farbeWechseln];
}
}- (IBAction)green:(id)sender {
if (sender == _sliderGruenn) {
_labelGruen.text = [NSString stringWithFormat:@"%0.0f", _sliderGruenn.value];
[self farbeWechseln];
}
- (IBAction)blue:(id)sender {
if (sender == _sliderBlau) {
_labelBlau.text = [NSString stringWithFormat:@"%0.0f", _sliderBlau.value];
[self farbeWechseln];
}
- (IBAction)farbe:(id)sender {
[self farbeWechseln];
- (void)farbeWechseln {
[label1 setBackgroundColor:[UIColor colorWithRed:_sliderRot.value/255 green:_sliderGruenn.value/255 blue:_sliderBlau.value/255 alpha:1.0]];
[label2 setBackgroundColor:[UIColor colorWithRed:_sliderRot.value/255 green:_sliderGruenn.value/255 blue:_sliderBlau.value/255 alpha:1.0]];
}
- (void)speichernDefaults {
// hier werden die UserDefaults gespeichert
NSString* label1 = self.label1.backgroundColor; //HERE IS MY FIRST ERROR = incompatible pointer types intializing NSString with an expression of type UIColor
NSString *labelRot = self.labelRot.text;
NSString *labelBlau = self.labelBlau.text;
NSString *labelGruen = self.labelGruen.text;
float sliderRot = self.sliderRot.value;
float sliderGruenn = self.sliderGruenn.value;
float sliderBlau = self.sliderRot.value;
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:label1 forKey:@"label1"]; //HERE IS MY SECOND ERROR = local declaration of ´label1´hides instance variable
[defaults setObject:labelRot forKey:@"labelRot"];
[defaults setObject:labelBlau forKey:@"labelBlau"];
[defaults setObject:labelGruen forKey:@"labelGruen"];
[defaults setFloat:sliderRot forKey:@"sliderRot"];
[defaults setFloat:sliderGruenn forKey:@"sliderGruenn"];
[defaults setFloat:sliderBlau forKey:@"sliderBlau"];
// dieser Befehl ist für sofortiges Speichern der Userdefaults
[defaults synchronize];