2011-02-07 3 views
0

저는 목표 C에 새로운데 목표 C에서 전역 정수의 값을 변경하려고하지만 컴파일러가 다음 메시지와 함께 불평하고 있습니다. "lvalue left as left 임명의 피연산자 ".전역 정수 할당 - lvalue가 할당의 왼쪽 피연산자로 필요합니다.

[[UIApplication sharedApplication].delegate someNSIntegerValue] = myNSIntegerValue; 

나는이에 대한 대답은 내가 뭘 잘못에 대한 답을 찾을 수 없다는 사실 너무 간단 간단 확신 : 여기

코드의 라인입니다.

+0

'**'은 무엇입니까? –

+0

Anders K : 저는 질문자가 어떤 이유로 그것을 과감하게 만들고 싶다고 생각합니다. 나는 그것을 편집 할 것이다. –

답변

4

Thomson Corner가 이미 말했듯이, someNSIntegerValue은 아마도 getter 일 것입니다. 그것은이로 변환하기 때문에 그러나 그렇지 않은 경우에도, 당신이 무엇을하고 있는지 아마도이 작동하지 않을 수 있습니다

[someInstance someMethod] = someValue; 

또는 C

someFunction() = someValue; 

이 희망의 잘못이 명확하게합니다. (경우에 당신은 @ 하나를 synthesize'd)

[[UIApplication sharedApplication].delegate setSomeNSIntegerValue: myNSIntegerValue]; 

또는 재산 틱 방법 : 당신은 무엇을 시도 할 수

[UIApplication sharedApplication].delegate.someNSIntegerValue = myNSIntegerValue; 

을 마지막 예는 같은 작업을 수행 실제로해야 그 전에.

+0

그게 치료를했는데 감사합니다 – jclc

+0

속성이'@ synthesize'd인지 여부는 중요하지 않습니다; 속성은 머리글에 선언해야합니다. 올바른 setter가 명시 적으로 선언되는 한'@ property '없이도 할 수 있습니다. –

0

someNSIntegerValue은 AppDelegate에 입력 한 속성의 경우 getter 메서드입니다. 대신 setSomeNSIntegerValue을 시도하십시오.

+0

빠른 답장을 보내 주셔서 감사합니다. @synthesize를 사용하여 속성을 만들었지 만 여전히 setSomeNSIntegerValue를 호출 할 수 있습니까? – jclc

+0

네,'@ property'와'@ synthesize'로 속성을 생성하는 것은 속성 속성을'readonly'로 설정하지 않는 한 setSomeNSIntegerValue를 사용하는 방법입니다. –

관련 문제