web-dev-qa-db-fra.com

Aucune @interface visible pour

J'ai eu cette erreur à plusieurs reprises et je ne sais pas trop quelle est la cause de l'erreur en général. Après avoir cherché pendant plus d'une heure sur le débordement de la pile et sur Google, je n'ai toujours pas de réponse. Quelqu'un pourrait aider? 

J'ai vu plusieurs réponses spécifiques mais rien ne dit pourquoi l'erreur se produit, seulement "do x" ou "do y".

Je n'ai pas encore inclus de code car je veux connaître la raison pour laquelle cette erreur se produit en général afin de pouvoir corriger mon code ultérieurement, chaque fois que j'obtiens cette erreur.

28
Shawn Sharp

Cela peut arriver pour de nombreuses raisons, mais généralement, cela indique que dans la ligne de code indiquée, il ne voit aucune indication que le sélecteur que vous référencez se trouve dans l'interface du type qui, à son avis, appartient à l'objet.

Dans cet exemple, 

Aucune erreur d'interface visible

Ils ont déclaré operandStack avec le mauvais type. 

Dans celui-ci

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=3312

Ils avaient une faute de frappe dans le nom du sélecteur

11
Lou Franco

Une autre raison peut être lorsque vous utilisez des catégories dans des bibliothèques et que vous n'avez pas défini -ObjC (ou -all_load) dans les autres indicateurs de l'éditeur de liens

2
Peter

Avez-vous une chance que vous soyez sur Xcode 4.2 (ou moins), avec un code en cours d’écriture écrit sur Xcode 4.3? Dans 4.3+, Xcode ne vous oblige pas à déclarer des méthodes privées, il suppose simplement que les méthodes écrites dans le fichier d'implémentation (sans déclarations dans l'interface) sont privées. Mais dans Xcode <= 4.2, cela jettera une erreur et ces méthodes devront au moins être déclarées en privé

2
JoeCortopassi

Je viens d'avoir ce problème; la mienne a été causée par le fait que j'ai défini la méthode comme une méthode de classe plutôt que comme une méthode d'instance. Très stupide.

2
ratbum

Une autre erreur courante consiste à oublier d'écrire [someInstancesetSomeValue: 3]; au lieu de [someInstance someValue: 3] (<- faux). C'est ce qui m'est arrivé.

1
Jerry

Quand j'ai rencontré ce problème, il s'est avéré que Xcode n'avait pas réindexé les fichiers après avoir changé de branche Git. La solution est Delete Derived Data.

Utilisation de Xcode version 10.0 File -> Workspace Settings... -> click on the little green circle and manually remove all files in DerivedData folder 

0
yoAlex5