J'essaie de créer une pointe qui contient une vue qui sera intégrée dans une TableViewCell. J'ai créé l'interface et les fichiers d'implémentation, ResultCell.h
et ResultCell.m
. Ils sont en stock, prêts à l'emploi, aucun changement de code.
Je crée ensuite un fichier XIB vide et fais glisser un UIView dessus. Ensuite, je clique sur le propriétaire du fichier et définit le type sur ResultCell
. Je clique sur la vue et définit sa classe comme étant également ResultCell
.
Voici les problèmes que j'ai:
- Lorsque vous utilisez la vue Assistant Editor (dans laquelle je vis), le
ResultCell.h
fichier n'apparaît pas lorsque je visualise le fichier ResultCell.xib. Je dois le forcer à se charger en cliquant sur Automatique et en sélectionnant le fichier. - Lorsque je dépose une étiquette dans la vue, puis Ctrl + Cliquez et faites glisser vers le .h pour créer une prise, j'obtiens ce message d'erreur: « Impossible d'insérer une nouvelle connexion de prise: impossible de trouver des informations sur la classe nommée ResultCell. "
J'ai essayé de créer et de recréer la vue, mais cela ne fonctionne tout simplement pas, et j'ai commencé à perdre patience. Toute aide serait très, très appréciée!
Réponses:
Cela peut ne pas fonctionner pour votre problème spécifique, mais j'obtiens parfois cette erreur lorsque je travaille avec des plumes nouvellement créées. La suppression et la recréation des pointes et des contrôleurs de vue portant les mêmes noms qu'auparavant n'ont pas résolu le problème, mais la relance de Xcode l'a fait.
la source
~/Library/Developer/Xcode/DerivedData
)Je suis entré dans un état similaire aujourd'hui. C'était très étrange: je pouvais attacher n'importe quel XIB (nouveau ou existant) à n'importe quelle classe ViewController déjà existante dans le projet, mais je ne pouvais pas créer un nouveau ViewController et le faire attacher correctement à n'importe quel XIB. La fonctionnalité "assistant" ne fonctionnait pas, pas plus que la fonctionnalité de connexion IB-to-headerfile.
La fermeture du projet et la réouverture n'ont pas résolu le problème.
Le fait de quitter XCode et de redémarrer n'a pas résolu le problème.
Créer un nouveau projet et tester la fonctionnalité fonctionnait bien, ce qui m'a conduit à croire qu'il y avait quelque chose de corrompu dans un cache quelque part.
Ma solution
Incidemment, le simple fait de faire un nettoyage complet ne semblait pas clarifier les choses. J'ai dû détruire les données dérivées. Je suis certain que je suis arrivé dans cette position à cause des jeux git auxquels je jouais, mais je ne savais pas comment m'en sortir, car même le retour aux révisions git antérieures n'aidait pas. (C'était aussi un gros indice que c'était quelque chose qui n'avait pas été suivi par le projet lui-même.)
la source
Je viens d'avoir ce problème et le redémarrage de Xcode ne l'a pas résolu. J'ai supprimé les fichiers de classe du projet, puis les ai rajoutés et cela a commencé à fonctionner.
la source
J'ai eu le même problème. Et j'ai essayé:
Rien de tout cela n'a fonctionné. Ce qui a fonctionné pour moi était simplement de:
Et.. Voila!
la source
Si le redémarrage de Xcode ne fonctionne pas de votre part, j'ai constaté que basculer le nouveau fichier .m vers l'extérieur et le retour dans l'appartenance cible fonctionne.
la source
Cela m'a aidé:
Si vous ne voyez pas de «panneau», jetez un œil dans le coin supérieur droit de la fenêtre et activez les boutons «Afficher» appropriés. Si vous ne voyez pas les boutons "Afficher", cliquez sur le bouton de capsule le plus en haut à droite.
la source
J'ai remarqué que le fichier .m a été déplacé dans le dossier en.lproj.
Supprimez simplement (référence uniquement) le fichier .m du Xcode et déplacez .m hors de en.lproj. Ajoutez-le à nouveau, cela résoudra le problème.
Ne vous inquiétez pas, vous récupérerez toutes vos connexions.
la source
J'ai rencontré le même problème aujourd'hui. Le redémarrage de XCode n'a pas résolu le problème pour moi. J'ai pu revenir à la normale en utilisant l' option "Supprimer" de "Données dérivées" du projet qui se trouve sous Organisateur . L'organisateur dit que «les données dérivées incluent l'index, la sortie de construction et les journaux». Je suppose que l' index ou la sortie de construction causaient ce problème.
la source
dans XCode, allez dans l'organiseur, cliquez sur projet, cliquez sur supprimer les données dérivées ... puis nettoyez le projet
la source
Dans mon cas, cela m'a aidé à faire un "faux changement" (juste un espace) dans le fichier d'en-tête correspondant.
la source
UITableViewCell
UIView
sur le canevas vide, vous devez faire glisser unUITableViewCell
Chaque fois que vous souhaitez charger une nouvelle cellule, appelez:
[[NSBundle mainBundle] loadNibNamed:nibName owner:controllerWithOutletToCell options:nil]
après le chargement, utilisez la cellule et réglez l'ivar / sortie sur zéro, prêt pour le prochain chargement
il existe d'autres moyens, mais c'est courant
la source
Peut-être que ce qui a fonctionné pour moi est ceci. (Xcode v4.5)
Cela n'a pas fonctionné
J'essayais de contrôler le glisser dans la définition d'interface de mon .h
@interface SearchViewController : UIViewController
@end
Cela a fonctionné (c'est peut-être ainsi que cela était censé fonctionner, je ne le savais pas auparavant) Voir les crochets ouverts et fermés. Contrôlez le glisser-déposer après le crochet fermé.
@interface SearchViewController : UIViewController { } @end
la source
J'ai eu un problème similaire avec un projet écrit en Swift.
Ce qui a fonctionné pour moi a été de configurer l'IBOutlet dans un code comme celui-ci
@IBOutlet var foo: UIView?
puis connectez-le à Interface Builder en le faisant glisser sur le petit cercle qui apparaît juste à côté de la ligne de code.
la source
Aucune des solutions de contournement ci-dessus n'a résolu le problème de connecteur pour moi.J'ai donc mis mon projet d'animal de compagnie en suspens jusqu'à ce que je tombe sur le thread stackoverflow suivant:
https://stackoverflow.com/a/15873770/2846800
J'avais travaillé sur un grand projet dans une version précédente de XCode et j'avais désactivé l'indexation. En réactivant l'indexation, mon problème est maintenant résolu:
defaults delete com.apple.dt.XCode IDEIndexDisable
Je peux maintenant utiliser les fonctionnalités D&D d'Interface Builder. J'espère que cela peut aider les autres ...
la source
Ce problème semble être un bogue Xcode qui s'installe surtout lorsque vous remplacez un fichier par un nouveau fichier du même nom. Xcode semble conserver une référence de l'ancien fichier du même nom.
Quoi qu'il en soit, le moyen de résoudre ce problème semble être:
(Les étapes 1 et 2 seules l'ont résolu pour moi.)
la source
Si vous avez copié des fichiers d'un autre projet, assurez-vous simplement de cocher la case `` Ajouter aux cibles ''
la source
Renommer les fichiers de classe peut les dissocier du XIB. Cette réponse m'a aidé à découvrir ceci:
Ctrl-Glisser du bouton à la méthode ne fonctionne pas. Générateur Xcode / Interface
Vérifiez que votre classe personnalisée est correctement définie dans l'inspecteur d'identité.
la source
Symptôme similaire, mais cause différente.
Apparemment, j'ai frappé en arrière lorsque le focus était sur la vue de l'assistant, car l'une des lignes de commentaire du modèle de fichier standard allait de // à /, ce qui empêchait la compilation du fichier.
La correction du commentaire a permis au SDK d'analyser le fichier, de le reconnaître comme un UIViewController et de l'ajouter dans la prise.
SO - si vous avez ce problème, faites une compilation ou analysez pour voir s'il y a des erreurs qui doivent être corrigées dans votre fichier .h de contrôleur de vue. ALORS essayez les autres solutions.
la source
Cela peut être un vieux sujet, mais juste au cas où quelqu'un aurait le même problème à l'avenir, essayez de supprimer les fichiers .xib, .h et .m associés et créez-en de nouveaux. Pour moi, le UIViewController dans mon fichier .h n'était pas violet et même le backspacing et la saisie n'a pas aidé.
la source
Mettez simplement une ligne entre @implementation et @synthesize. La plupart des réponses ici ont cela en commun. Ça a marché pour moi
@implementation @synthesize
la source
J'ai juste tout essayé ici et rien n'a fonctionné (en utilisant un Developer Preview pour Xcode 5).
La seule chose qui a fonctionné pour moi a été de mettre cette ligne incomplète dans mon fichier d'interface:
@property (nonatomic, weak)
Pour une raison quelconque, l'ajout de prises et d'actions par glisser-déposer à partir d'un .xib a bien fonctionné par la suite.
la source
Pour moi, le nettoyage ou la suppression de DerivedData ont résolu le problème.
J'ai essayé de supprimer et de recréer ma classe UIViewController plusieurs fois et j'ai eu le problème encore et encore.
Ensuite, j'ai recréé la classe UIViewController et lui ai donné un nom différent. Cela a résolu le problème pour moi.
la source
J'ai eu ce problème et j'ai trouvé une solution non répertoriée ci-dessus.
Dans mon cas, je pouvais voir qu'il y avait quelque chose qui n'allait pas dans le fichier de classe .h car mon contrôleur de vue personnalisé ne reconnaissait pas la classe: UIViewController (il était en noir et non en violet). Tous les autres contrôleurs de vue personnalisés avaient le: UIViewController en violet.
dans mon cas, et peut-être le vôtre, j'avais besoin d'ajouter la classe dans la liste déroulante des cibles / phases de construction / sources de compilation. Le .m doit être ajouté. Tous les autres .m étaient là mais pas celui-ci.
Une fois que je l'ai ajouté, le: UIViewController est apparu en violet et tout a bien fonctionné.
la source
Pour mon cas, j'ai plusieurs projets avec d'autres dépendances. J'ai essayé de le résoudre en supprimant les données dérivées ou en redémarrant XCode mais cela ne pouvait pas fonctionner. Au final, j'ai essayé la méthode suivante et ça marche:
Accédez à target> Build Target Architectures Only> et définissez à la fois Debug et Release sur NO.
Définissez cette option pour tous les projets de l'espace de travail et recompilez pour vous assurer qu'il n'y a pas d'autres erreurs. Cela n'a peut-être pas de sens, mais je l'ai fait. Lors de ma compilation, j'ai eu d'autres problèmes tels que des erreurs de l'éditeur de liens et des symboles introuvables.
la source
Pour le fichier * .m de cette vue de classe, ouvrez "Afficher l'inspecteur de fichiers" et décochez "Appartenance cible" pour ce projet, puis faites Nettoyer (menu Produit-> Nettoyer) et vérifiez à nouveau "Appartenance cible" pour ce projet
la source
En utilisant Swift, j'ai eu un problème similaire. J'ai découvert que les commentaires faisaient partie du problème pour moi.
J'ai exploité le contrôleur de vue par défaut, y ai travaillé, puis créé un deuxième contrôleur de vue en copiant le premier contrôleur entier, en le réduisant à seulement viewDidLoad () et en renommant la classe en TestViewController. Les constructions ont fonctionné, le code exécuté. Tout était bon.
Quand je suis allé faire glisser un UITextField pour créer un point de vente, il ne me le permettait pas. J'ai remarqué que mes commentaires disaient toujours "ViewController.swift", j'ai donc changé le texte du commentaire en "TestViewController.swift" et reconstruit. J'ai pu connecter ma prise!
Je me demande si ce qui s'est passé est que l'indexeur lisait les commentaires ainsi que les noms de classe, et s'est en quelque sorte confus.
la source
J'espère que cela aide quelqu'un là-bas.
Je devais simplement supprimer le dossier de données dérivées. Vous devez cliquer sur Fenêtre -> Organiseur -> Projets -> Supprimer les données dérivées
ET REDÉMARREZ XCODE.
Vous devriez être prêt à partir!
la source
La nouvelle classe ne faisant pas partie de "TARGET" est probablement la cause profonde de ceci, comme l'ont fait allusion certaines de ces réponses.
Lors de la création d'une nouvelle classe de cacao, par défaut, l'option pour ajouter une nouvelle classe à la cible est cochée par défaut, mais devrait, pour une raison quelconque, ne pas être cochée lorsque vous appuyez sur Enregistrer, vous aurez ce problème.
Chacune de ces solutions de contournement qui ajoutent la nouvelle classe à la cible des applications fonctionnera pour résoudre le problème, et est quelque chose que tous ces «correctifs» ont en commun.
Je pense que XCode a probablement des bogues qui provoquent, par défaut, un nouveau fichier NE PAS être ajouté à la cible principale des applications. Le correctif se résume à l' ajout de votre classe `` cassée '' à la cible principale
la source
Dans XCode 7.1, l'ajout du connecteur à un point différent de mon fichier source fonctionnait. L'erreur que je recevais renvoyée à l'une de mes variables comme s'il s'agissait d'une classe (n'avait aucun sens). L'erreur a cessé de se produire lorsque j'ai ajouté le connecteur en dessous de cette variable au lieu d'en haut.
la source
Il y a aussi une raison différente au problème ... si vous avez créé un nouveau fichier de classe cacao avec un modèle autre que iOS ... je peux arriver ...
La solution serait de le supprimer et de le recréer avec le bon modèle
la source