1

我有一个前视图和一个翻转视图,就像实用天气应用程序一样。

为了避免处理协议的复杂性……在我的 FlipView 上,我需要调用一些驻留在我的前视图中的代码。这有效......但在编译期间会产生警告。

[self.parentViewController returningFromGetStringView];

警告(显示两次):

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

该方法肯定存在......并且执行得很好......但是为什么会出现警告???

4

2 回答 2

6

编译器告诉您它无法验证接收方是否会处理消息(returningFromGetStringView)。您可以通过转换为 id 或转换为 parentViewController 的类型来使其安静:

[(id)self.parentViewController returningFromGetStringView]; 

或者

[(YourClassThatIsParent*)self.parentViewController returningFromGetStringView];
于 2010-10-20T19:33:06.707 回答
2

该属性parentViewController被声明为UIViewController. 因此,据编译器所知,它正在尝试returningFromGetStringViewUIViewController. 由于UIViewController不实现returningFromGetStringView,编译器会给出警告。

要使警告消失,您可以将UIViewController转换为您的自定义类,让编译器知道所指的是哪个UIViewController子类。parentViewController

[(MyViewController *)self.parentViewController returningFromGetStringView];
于 2010-10-20T19:34:18.093 回答