在我的viewDidLoad中,我有以下内容。但我似乎无法正确使用语法。
[led.highlighted: [[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];
我也试过
[led.highlighted setValue:[[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];
但是那个错误的“Bad Receiver type'BOOL'”
我从IBAction设置值的方法似乎没问题。
[[NSUserDefaults standardUserDefaults] setBool:led.isHighlighted forKey:@"led"];
那么我究竟该如何返回led.highlighted的值?
答案 0 :(得分:4)
led.highlighted
访问该属性;取决于它在语句的右侧或左侧,它分别使用getter或setter。
led.highlighted = YES;
// Equivalent to: [led setHighlighted:YES];
BOOL thatLEDIsLitUp = led.highlighted;
// Equivalent to: BOOL thatLEDIsLitUp = [led highlighted];
这假设您没有将getter和setter名称更改为isHighlighted
和setIsHighlighted:
鉴于此,要设置属性,您可以执行以下操作:
led.highlighted = [[NSUserDefaults standardUserDefaults] boolForKey:@"led"];
或
[led setHighlighted:[[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];
您的第一次尝试,[led.highlighted:...]
只是错误的语法。第二个,[led.highlighted setValue:...]
使用访问者获取highlighted
BOOL
,然后尝试向其发送消息。 BOOL
不是对象,因此您无法向其发送消息。
答案 1 :(得分:0)
led.highlighted = [[NSUserDefaults standardUserDefaults] boolForKey:@"led"];
只要你的highlighted
财产是
@property (nonatomic, assign) BOOL highlighted;