这是一个简单的问题,但我没有运气就找到了答案。
我想访问按钮的背景颜色,将其保存到变量中,以后可以访问它。
所以,我在视图控制器中声明了一个实例属性:
@property UIColor *variable;
,在我的方法中:
-(IBAction)buttonPressed:(id)sender {
variable = sender.backgroundColor;
}
但是我收到了错误:
在_strong id警告类型的对象中找不到属性backgroundcolor。
哪里出错?
答案 0 :(得分:0)
您有三种选择:
将sender
属性从id
更改为UIButton *
。
- (IBAction)buttonPressed:(UIButton *)sender {
self.variable = sender.backgroundColor;
}
调用backgroundColor
getter方法,而不是使用backgroundColor
属性。
- (IBAction)buttonPressed:(id)sender {
self.variable = [sender backgroundColor];
}
在sender
上使用强制转型。
- (IBAction)buttonPressed:(id)sender {
self.variable = ((UIButton *)sender).backgroundColor;
}
您遇到的主要问题是您无法对id
类型的对象使用属性引用。