Liaisons MInefield dans Xcode et Interface Builder
-
06-07-2019 - |
Question
Très bien, après avoir passé au travers de de "Créer une application de données principale" de Cocoa Dev Central. tutoriel J'ai commencé à créer ma propre application en utilisant le code et le fichier .nib
du didacticiel comme référence pour vérifier que tout est correctement organisé. Globalement, je me débrouille assez bien avec cette technologie, mais il semble que je sois tombé dans un piège.
Je construis un formulaire avec deux zones NSTextView
, comme dans le didacticiel, mais lié à des attributs différents dans la même entité. Tous les autres contrôles fonctionnent correctement et enregistrent / actualisent leurs valeurs lorsque je passe d’un enregistrement à l’autre (moins une absurdité de la boîte de date, la seconde ne voulant pas sauvegarder ses valeurs). J'ai vérifié tous les paramètres de liaison et NSArrayController
par rapport au .nib
du didacticiel pour voir où les choses pourraient être désactivées; cela a conduit à décrocher la première zone de texte, puis à la reconnecter avec les mêmes paramètres et cela a fonctionné comme par magie. La deuxième boîte ne veut pas se comporter, cependant, et persiste à casser le programme (le débogueur s’affiche, listant toutes sortes de variables et d’adresses mémoire, entre autres, qui dépasse franchement ma compréhension).
Actuellement, la boîte incriminée est configurée comme suit:
Class: NSTextView
Value: Bound to `history`
Controller Key: selection
Model Key Path: `description`
Checked: Allows Editing Multiple Values Selection
Checked: Conditionally Sets Editable
Checked: Raises For Not Applicable Keys
Avez-vous un aperçu de ce qui se passe ici?
La solution
D'accord, j'ai compris. Changement du nom d'attribut de description
et cela a commencé à se comporter; il semble que le nom a déclenché quelque chose quand il a compilé la vérification de bogue initiale manquée.