IB : Fonction "Test Interface" qui ne fonctionne plus sur un projet

Eddy58Eddy58 Membre
Elle ne veut plus fonctionner sur mon projet en cours, alors qu'elle allait bien au tout début du dev, et qu'elle marche correctement dans d'autres projets. L'interface doit poser un problème pour cette fonction, mais je ne vois pas quoi, elle ne comporte que des objets classiques. ???

Réponses

  • BruBru Membre
    21:42 modifié #2
    as-tu une trace dans la console ?

    .
  • Eddy58Eddy58 Membre
    21:42 modifié #3
    En effet oui, mais je ne vois pas le problème là ... :o
    [tt]
    2006-07-15 17:07:36.315 Interface Builder[456] Unknown class `DossierInformationsController' in nib file, using `NSObject' instead.
    2006-07-15 17:07:36.342 Interface Builder[456] Simulator got exception [<NSObject 0x42f9510> addObserver:<NSObjectController 0x45d8b10> forKeyPath:@dossierInformations.choixDiagnosticsArray options:0x0 context:0x0] was sent to an object that is not KVC-compliant for the "dossierInformations" property.
    [/tt]

    "DossierInformationsController" est un contrôleur classique, sous-classe de NSObject, instancié dans IB.

    Le KeyPath "dossierInformations.choixDiagnosticsArray" est une key contenue dans "DossierInformationsControllerAlias" qui est un NSObjectController, instancié aussi dans IB, allant chercher son contenu dans le contrôleur "DossierInformationsController".
  • BruBru Membre
    21:42 modifié #4
    Je ne te donne que mon interprétation :

    pour une raison indéterminée, j'ai l'impression que ton nib c'est mis soit en mode "pre 10.2", soit en sdk "pre 10.3".

    Dans tous les cas, NSObjectController est une classe qui n'existe pas dans de tels cas. Ceci explique le message dans la console. Ceci doit aussi expliquer pourquoi le "Test Interface" ne fonctionne pas non plus.

    Tu peux toujours essayer d'utiliser nibtool pour tenter de réparer ton nib.

    Mais vérifie tout de même que dans les préférences de IB, onglet "General", l'option "New Nib file format" est bien coché sur "10.2 and later".

    Par sécurité, un petit poubellage (suppression) des prefs de IB ne serait pas une mauvaise chose.

    .
  • Eddy58Eddy58 Membre
    21:42 modifié #5
    J'ai poubellé les préférences, et fait les réglages appropriés dans les préférences d'IB et dans l'onglet Nib du projet, mais rien n'y fait. :crackboom:-
    Je vais tenter un passage de nibtool dessus, mais je ne vois pas d'option de réparation à  proprement dites, la ou lesquelles faut-il utiliser ?
  • Eddy58Eddy58 Membre
    juillet 2006 modifié #6
    J'ai fais quelques essais, et je ne pense pas que mon fichier nib soit endommagé :
    - Quand j'utilise l'application normalement, il n'y a aucun message dans la console et tout fonctionne correctement.
    - En désactivant le binding du NSArrayController pointant sur "DossierInformationsControllerAlias", tout revient dans l'ordre et je peux à  nouveau utiliser la fonction.

    Je pencherais donc plus sur un problème du simulateur d'interface (bug ?) qui doit avoir un peu de mal avec certains MKP, mais ça peut-être tout autre chose. En tout cas, j'ai beau y réfléchir, mais je ne vois pas l'intérêt pour le simulateur de se soucier des MKP. ???
    Je verrais plus tard dans le développement si ça me le refait avec d'autres bindings.

    En tout cas, merci à  toi Bru pour tes suggestions. :) 


    [EDIT] Bon, le simulateur refonctionne. J'ai résolu le problème en accessorisant la variable d'instance dossierInformations, ainsi que toutes les autres variables encore non accessorisées, pour être certain qu'elles ne sont pas la source des deux nouveaux messages suivants :
    [tt]
    2006-07-17 00:58:02.984 Interface Builder[333] Cocoa Bindings: Error registering as observer with key path selection.dossierInformations.choixDiagnosticsArray of object <NSObjectController: 0xa10aec0>[object class: NSMutableDictionary] (in the context of binding contentArray of object <NSArrayController: 0x95fe830>[object class: ChoixDiagnostic, number of selected objects: 0]): [<NSObject 0x4202980> addObserver:<NSObjectController 0xa10aec0> forKeyPath:@dossierInformations.choixDiagnosticsArray options:0x0 context:0x0] was sent to an object that is not KVC-compliant for the "dossierInformations" property.
    2006-07-17 00:58:02.984 Interface Builder[333] Cocoa Bindings: Error accessing value for key path selection.dossierInformations.choixDiagnosticsArray of object <NSObjectController: 0xa10aec0>[object class: NSMutableDictionary] (from bound object <NSArrayController: 0x95fe830>[object class: ChoixDiagnostic, number of selected objects: 0]): [<NSObject 0x4202980> valueForUndefinedKey:]: this class is not key value coding-compliant for the key dossierInformations.
    [/tt]
    Je n'ai pas réponse à  ces messages (Jamais content cet IB ! :P), mais bon ça ne me dérange pas plus que ça...En tout cas, j'aurais au moins appris aujourd'hui que le simulateur va examiner les classes, afin de voir si le KVC est bien respecté.
Connectez-vous ou Inscrivez-vous pour répondre.