Objective c 获取NSUserDefault上的布尔值

Objective c 获取NSUserDefault上的布尔值,objective-c,ios,Objective C,Ios,在我的viewDidLoad中,我有以下内容。但我似乎无法正确理解语法 [led.highlighted: [[NSUserDefaults standardUserDefaults] boolForKey:@"led"]]; 我也试过了 [led.highlighted setValue:[[NSUserDefaults standardUserDefaults] boolForKey:@"led"]]; 但这一个错误的“坏接收器类型'布尔'” 我从iAction设置值的方法似乎还可以 [

在我的viewDidLoad中,我有以下内容。但我似乎无法正确理解语法

[led.highlighted: [[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];
我也试过了

[led.highlighted setValue:[[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];
但这一个错误的“坏接收器类型'布尔'”

我从iAction设置值的方法似乎还可以

[[NSUserDefaults standardUserDefaults] setBool:led.isHighlighted forKey:@"led"];
那么,如何准确地返回led.highlighted的值呢

led.highlighted = [[NSUserDefaults standardUserDefaults] boolForKey:@"led"];
只要您的
突出显示
属性
@属性(非原子,赋值)布尔突出显示

发光二极管。突出显示的
访问属性;根据它位于语句的右侧或左侧,它分别使用getter或setter

led.highlighted = YES;
// Equivalent to: [led setHighlighted:YES];
BOOL thatLEDIsLitUp = led.highlighted;
// Equivalent to: BOOL thatLEDIsLitUp = [led highlighted];
这假设您没有将getter和setter名称更改为
ishighlight
setishighlight:

因此,要设置属性,可以执行以下操作之一:

led.highlighted = [[NSUserDefaults standardUserDefaults] boolForKey:@"led"];

您的第一次尝试,
[led.高亮显示:…]
只是语法不正确。第二个,
[led.highlighted setValue:…]
使用访问器获取
highlighted
,这是一个
BOOL
,然后尝试向其发送消息
BOOL
s不是对象,因此不能向它们发送消息

[led setHighlighted:[[NSUserDefaults standardUserDefaults] boolForKey:@"led"]];