Impossible d'ouvrir un Xib sous 3.2.6

tabliertablier Membre
mai 2011 modifié dans API AppKit #1
Je viens de passer un projet de mon G4 (OSx 10.5, Xcode 3.1.2) à  mon MBook Pro (OSx 10.6, Xcode 3.2.6). Dans les deux cas, le SDK utilisé est le 10.5.  Je n'arrive pas à  ouvrir le Xib avec IB sous Xcode 3.2.6 alors qu'il s'ouvre sans problème sous Xcode 3.1.2. J'obtiens l'erreur ci-dessous,  donc impossibilité de compiler.
Je n'ai jamais installé de plug-in sous le 3.1.2. et après vérification je ne trouve pas de plug-ins spéciaux. Donc l'installation du 3.1.2 n'a rien de spécial.

Qui a une idée sur ce problème??

Nota: j'ai bien vu que NSMovieView est "deprecated", Mais que puis-je faire puisque le problème est dans le Xib?

Réponses

  • FloFlo Membre
    12:32 modifié #2
    Bizarre ça !  ???

    Je Viens juste de faire un test sous XCode 3.2.6 en ajoutant une web view dans le xib d'une application.
    Je lance le projet et crac :

    2011-05-14 11:41:39.063 iTrend[605:a0f] An uncaught exception was raised
    2011-05-14 11:41:39.077 iTrend[605:a0f] *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)
    2011-05-14 11:41:39.199 iTrend[605:a0f] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)'
    *** Call stack at first throw:
    (
    0  CoreFoundation                      0x00007fff8032c7b4 __exceptionPreprocess + 180
    1  libobjc.A.dylib                    0x00007fff891740f3 objc_exception_throw + 45
    2  CoreFoundation                      0x00007fff8032c5d7 +[NSException raise:format:arguments:] + 103
    3  CoreFoundation                      0x00007fff8032c564 +[NSException raise:format:] + 148
    4  Foundation                          0x00007fff80901b22 _decodeObjectBinary + 2427
    5  Foundation                          0x00007fff80901015 _decodeObject + 208
    6  AppKit                              0x00007fff8877a007 -[NSNibConnector initWithCoder:] + 445
    7  AppKit                              0x00007fff88779e32 -[NSNibOutletConnector initWithCoder:] + 343
    8  Foundation                          0x00007fff80901b9b _decodeObjectBinary + 2548
    9  Foundation                          0x00007fff809028a1 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1229
    10  Foundation                          0x00007fff80902de1 -[NSArray(NSArray) initWithCoder:] + 462
    11  Foundation                          0x00007fff80901b9b _decodeObjectBinary + 2548
    12  Foundation                          0x00007fff80901015 _decodeObject + 208
    13  AppKit                              0x00007fff8877914d -[NSIBObjectData initWithCoder:] + 2046
    14  Foundation                          0x00007fff80901b9b _decodeObjectBinary + 2548
    15  Foundation                          0x00007fff80901015 _decodeObject + 208
    16  AppKit                              0x00007fff8877883d loadNib + 146
    17  AppKit                              0x00007fff88777d9a +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 248
    18  AppKit                              0x00007fff88777bd2 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 326
    19  AppKit                              0x00007fff88775153 NSApplicationMain + 279
    20  iTrend                              0x0000000100001635 main + 33
    21  iTrend                              0x000000010000160c start + 52
    22  ???                                0x0000000000000001 0x0 + 1
    )
    terminate called after throwing an instance of 'NSException'
    Program received signal:  “SIGABRT”.


    Bug dans l'implémentation du NSCoding protocol dans la classe WebView ?
  • mpergandmpergand Membre
    12:32 modifié #3
    Et en ajoutant la framework WebKit au projet, ça donne quoi ?
  • tabliertablier Membre
    12:32 modifié #4
    Pour moi, je pense que cela ne servira à  rien car j'ai l'erreur en ouvrant le xib directement par IB (sans Xcode). Donc, c'est IB qui ne connait plus la classe NSMovieView, et donc refuse d'ouvrir le xib.
    Vu la documentation, je pense qu'il me faut retourner sous Xcode 3.1.2 et remplacer l'objet NSMovieView par un équivalent connu de IB 3.2.6. Probablement un objet QTMovieView.
  • mpergandmpergand Membre
    12:32 modifié #5
    NSMovieView ne semble plus être supporté en 64 bits:

    http://www.cocoabuilder.com/archive/xcode/287314-nsmovieview-in-ib-3-2-2.html
  • tabliertablier Membre
    12:32 modifié #6
    Effectivement, cet article décrit mon problème et la solution proposée est celle que j'intuitais dans ma réponse précédente. Bon, je suis en montagne et je verrai cela lundi à  grenoble.
  • FloFlo Membre
    12:32 modifié #7

    Et en ajoutant la framework WebKit au projet, ça donne quoi ?


    A oui tiens, quelle cloche, je n'avais pas ajouté le framework WebKit au projet de test  :D
    Je pensais que ce problème était lié au bug de tablier mais à  priori pas du tout...
  • laudemalaudema Membre
    12:32 modifié #8
    dans 1305381624:

    Effectivement, cet article décrit mon problème et la solution proposée est celle que j'intuitais dans ma réponse précédente. Bon, je suis en montagne et je verrai cela lundi à  grenoble.

    Tu retombes sur un problème que je signalais avec Xcode 4: toutes les applis ne sont pas compatibles directement avec le 64 bits, dans mon cas c'est l'usage d'une librairie externe qui coince et je dois attendre que le dévellopeur en sorte une version 64 bits. Comme c'est du C et qu'il la livre pour Windows/Mac OS X/Linux je comprendrais qu'il ne soit pas pressé ...
  • tabliertablier Membre
    12:32 modifié #9
      :P  Je suis retourné sous Xcode 3.1.2. J'ai supprimé l'objet et je l'ai remplacé par un objet QTMovieView de même taille. Depuis, le xib s'ouvre correctement sous Xcode 3.2.6.
Connectez-vous ou Inscrivez-vous pour répondre.