1

J'ai une vue de face et une vue inversée, tout comme l'application météo. Pour éviter la complexité des protocoles ... sur mon flipView, j'ai besoin d'appeler du code qui se trouve sur ma vue de face. Cela fonctionne ... mais génère un avertissement lors de la compilation.Rappel d'une méthode sur le contrôleur parent sans message d'avertissement

[self.parentViewController returningFromGetStringView]; 

Avertissements (émissions deux fois):

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

La méthode existe bel et bien ... et exécute bien ... mais pourquoi l'avertissement ???

Répondre

6

Le compilateur vous indique qu'il ne peut pas vérifier que le destinataire va gérer le message (returningFromGetStringView). Vous pouvez hush par coulée à id ou par coulée du type de votre parentViewController:

[(id)self.parentViewController returningFromGetStringView]; 

ou

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

La propriété parentViewController est déclaré être un UIViewController. Donc, pour autant que le compilateur le sache, il essaie d'envoyer un message returningFromGetStringView à un UIViewController. Puisque UIViewController n'implémente pas returningFromGetStringView, le compilateur donne un avertissement.

Pour que l'avertissement disparaisse, vous pouvez convertir le UIViewController en votre classe personnalisée pour indiquer au compilateur à quelle classe UIViewController la sous-classe parentViewController fait référence.

[(MyViewController *)self.parentViewController returningFromGetStringView];