Вызов метода обратно на родительском контроллере без предупреждения - PullRequest
1 голос
/ 20 октября 2010

У меня есть вид спереди и флип-вид, очень похожий на утилиту weather-app.

Чтобы не сталкиваться со сложностями протоколов ... в моем flipView мне нужно вызвать некоторый код, который находитсяназад на мой вид спереди.Это работает ... но выдает предупреждение во время компиляции.

[self.parentViewController returningFromGetStringView];

Предупреждения (показывает дважды):

'UIViewController' may not respond to '-returningFromGetStringView'
'UIViewController' may not respond to '-returningFromGetStringView'

Метод определенно существует ... и выполняется нормально ... нопочему предупреждение ???

Ответы [ 2 ]

6 голосов
/ 20 октября 2010

Компилятор сообщает, что не может проверить, что получатель обработает сообщение (returningFromGetStringView). Вы можете замять это, приведя к id или приведя к типу вашего parentViewController:

[(id)self.parentViewController returningFromGetStringView]; 

или

[(YourClassThatIsParent*)self.parentViewController returningFromGetStringView];
2 голосов
/ 20 октября 2010

Свойство parentViewController объявлено как UIViewController.Итак, насколько известно компилятору, он пытается отправить сообщение returningFromGetStringView на UIViewController.Поскольку UIViewController не реализует returningFromGetStringView, компилятор выдает предупреждение.

Чтобы убрать предупреждение, вы можете привести UIViewController к своему пользовательскому классу, чтобы компилятор знал, какой UIViewController подкласс parentViewController имеет в виду.

[(MyViewController *)self.parentViewController returningFromGetStringView];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...