1

我有一个前视图和翻转视图,非常类似于实用工具weather-app。在没有警告消息的情况下调用父控制器上的方法

为了避免处理复杂的协议......在我的flipView上,我需要调用一些代码,这些代码驻留在我的前视图上。这工作......但在编译过程中产生一个警告。

[self.parentViewController returningFromGetStringView]; 

警告(出现了两次):

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

的方法肯定存在......并执行罚款...但为什么警告???

回答

6

编译器告诉你它不能验证接收器将处理消息(returningFromGetStringView)。你可以通过转换成ID或投放到parentViewController类型嘘吧:

[(id)self.parentViewController returningFromGetStringView]; 

[(YourClassThatIsParent*)self.parentViewController returningFromGetStringView]; 
2

酒店parentViewController被宣布为UIViewController。所以,据编译器知道,它试图发送returningFromGetStringView消息到UIViewController。由于UIViewController未执行returningFromGetStringView,因此编译器会发出警告。

为了避免警告,您可以将UIViewController强制转换为您的自定义类,以便编译器知道哪个子类parentViewController所指的是。

[(MyViewController *)self.parentViewController returningFromGetStringView]; 
相关问题