2008-10-28 3 views
0

У меня есть MainViewController, вызывающий WebViewController (из приложения примера UICatalog) В WebViewController я делаю некоторую функцию setValue() {...}, чтобы установить некоторое значение, переданное как параметр переменной (значение NSString *) из WebViewController .h, но когда я пытаюсь из MainViewController что-то вроде WebViewController targetViewController ... targetViewController.setValue (значение), он говорит: «ошибка: запрос члена„SetValue“в чем-то не ей структуры или объединения» ...Значения переходов между представлениями

ответ

1

Если у вас есть свойство с именем «значение» и используйте @sythesize для создания метода для вас, и в этом случае вы вызываете его с помощью «.». Обозначения:

targetViewController.value = whatever; 

Или вы можете позвонить сеттер прямо независимо от вас или @synthesize написания метода:

[targetViewController setValue:whatever]; 

Синтаксис свойства (class.property = то) на самом деле просто ярлык вызывая метод «setValue:», и в свою очередь механизмы свойств @property и @synthesize просто записывают полезный бит кода для вас.

Редактировать: Я уже говорил, если вы только что написали метод setValue :, вы можете называть его с помощью нотации class.value = newValue, но это было неверно - вам нужно определить @property для использования " «. нотации.

1

Я считаю, что

targetViewController.value = whatever; 

будет работать только если у вас уже есть @property заявленных; если нет, то вам необходимо использовать полный синтаксис метода вызова:

[targetViewController setValue: whatever]; 

В противном случае, Kendall правильно об использовании сеттеры и @synthesize.

Кроме того, ваш синтаксис написан с использованием процедурного C

targetViewController.setValue(value); 

который определенно не будет работать.

+0

С моей стороны, вы абсолютно правы - после тестирования вы должны использовать @property для вызова с использованием синтаксиса class.value. Я отредактирую свой ответ, чтобы не распространять ложные представления ... – 2008-10-28 18:54:04

0

Также необходимо убедиться, что #import файл targetViewController.h.

Смежные вопросы