2008-10-28 6 views
0

WebViewController (UICatalog 샘플 응용 프로그램에서)를 호출하는 MainViewController가 있습니다. WebViewController에서 WebViewController에서 변수 (NSString * value)에 전달 된 일부 값을 설정하기 위해 setValue() {...} 내가 WebViewController targetViewController ... targetViewController.setValue (값)와 같은 MainViewController 뭔가에서 때 .H하지만, 그것은 말한다 :보기 사이에 값을 전달합니다.

... " 오류 요청 멤버 것이 아닙니다의 구조 또는 조합에서 'setValue의'에 대한"

답변

1

"value"라는 속성이 있고 @sythesize를 사용하여 메서드를 만드는 경우 해당 메서드를 사용하여 호출합니다. 표기 : 당신이 크게 관계없이 또는 방법을 쓰는 @synthesize의 세터를 호출 할 수 있습니다

targetViewController.value = whatever; 

또는 :

[targetViewController setValue:whatever]; 

속성 구문은 (class.property은 = 무엇이든)은 정말로 단지 바로 가기입니다 "setValue :"메소드를 호출하고, 대신에 @property와 @synthesize 메카니즘의 메카니즘은 유용한 코드를 작성하는 것이다.

편집 : 방금 "setValue :"메서드를 작성한 경우 "class.value = newValue"표기법을 사용하여 호출 할 수 있었지만 이전 버전에서는 올바르지 않은 것으로 나타났습니다 .- " . " 표기법.

1

내가 믿는

targetViewController.value = whatever; 
이미 @property이있는 경우

에만 작동합니다 선언; 그렇지 않으면, 당신은 전체 메소드 호출 구문을 사용해야합니다 :

[targetViewController setValue: whatever]; 

그렇지 않으면, 켄달은 세터와 @synthesize를 사용하는 방법에 대한 올바른 것입니다.

또한 당신의 구문은 확실히이 작동하지 않습니다 절차 C

targetViewController.setValue(value); 

를 사용하여 작성되었습니다.

+0

내 부분에, 당신은 완전히 정확합니다. 테스트 후 class.value 구문을 사용하여 @property를 호출해야합니다. 거짓 반응을 퍼트 리지 않도록 내 반응을 편집합니다 ... –

0

# targetViewController.h 파일을 반드시 가져와야합니다.

관련 문제