-1

私の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 の値を正確に返すにはどうすればよいでしょうか。

4

2 に答える 2

4

led.highlightedプロパティにアクセスします。ステートメントの右側または左側にあるかどうかに応じて、それぞれゲッターまたはセッターを使用します。

led.highlighted = YES;
// Equivalent to: [led setHighlighted:YES];
BOOL thatLEDIsLitUp = led.highlighted;
// Equivalent to: BOOL thatLEDIsLitUp = [led highlighted];

isHighlightedこれは、ゲッターとセッターの名前をとに変更していないことを前提としています。setIsHighlighted:

その場合、プロパティを設定するには、次のいずれかを実行できます。

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

また

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

最初の試みは、[led.highlighted:...]構文が正しくありません。2つ目[led.highlighted setValue:...]は、アクセサーを使用して、を取得しますhighlighted。これは、BOOLであり、メッセージを送信しようとします。BOOLはオブジェクトではないため、メッセージを送信することはできません。

于 2012-06-13T20:10:35.217 に答える
0
led.highlighted = [[NSUserDefaults standardUserDefaults] boolForKey:@"led"];

あなたのhighlighted財産が @property (nonatomic, assign) BOOL highlighted;

于 2012-06-13T20:06:35.420 に答える