2012-06-13 3 views
-1

내 viewDidLoad 안에 다음과 같은 내용이 있습니다. 하지만 구문을 올바로 처리 할 수는 없습니다.NSUserDefaults에서 BOOL 값 가져 오기

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

와 나는 또한

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

하지만 "나쁜 수신기 유형 'BOOL'은"IBAction를에서 값을 설정

내 방법 하나 오류가 확인 될 것으로 보인다 했어요.

[[NSUserDefaults standardUserDefaults] setBool:led.isHighlighted forKey:@"led"]; 

그래서 led.highlighted의 값을 정확히 반환합니까?

답변

4

led.highlighted 같이 속성을 액세스; 명령문의 오른쪽 또는 왼쪽에있는 지에 따라 각각 getter 또는 setter가 사용됩니다.

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

isHighlighted에 getter 및 setter 이름을 변경하지 않은 및 setIsHighlighted:

, 당신이 할 수있는 속성을 설정하는 점을 감안한다고 가정 중 하나

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

또는

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

처음 시도하면 [led.highlighted:...]은 j입니다. 구문이 틀립니다. 두 번째로 [led.highlighted setValue:...]은 접근자를 사용하여 highlighted (BOOL)을 가져온 다음 메시지를 보내려고합니다. BOOL은 개체가 아니므로 메시지를 보낼 수 없습니다.

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

은 한 당신의 highlighted 속성이 @property (nonatomic, assign) BOOL highlighted;