2010-05-03 2 views
1

Je travaille avec la fourchette de PSMTabBarControl de Robert Payne qui fonctionne avec IB 3.2 (merci BTW Robert!): http://codaset.com/robertjpayne/psmtabbarcontrol/. L'application de démonstration fonctionne correctement sur les systèmes 64 bits, mais lorsque j'essaie d'ouvrir le fichier XIB dans Interface Builder sur un système 32 bits, j'obtiens: IBXMLDecoder: La valeur (4654500848) pour la clé (myTrackingRectTag) est trop grande pour tenir dans un entier 32 bitsErreur Interface Builder: IBXMLDecoder: La valeur de la clé est trop grande pour tenir dans un entier 32 bits

Construire l'application comme 32 œuvres de bits, mais en cours d'exécution il donne: PSMTabBarControlDemo [9073: 80F] *** - [NSKeyedUnarchiver decodeInt32ForKey:]: valeur (4654500848) pour la clé (myTrackingRectTag) trop grand pour tenir dans un entier de 32 bits

Vous ne savez pas s'il s'agit d'un problème IB générique qui peut se produire lors du déplacement entre des systèmes 64 et 32 ​​bits, ou s'il s'agit d'un problème plus spécifique avec ce code. Est-ce que quelqu'un d'autre a rencontré cela?

Répondre

0

Je suis allé au fond de tout ça et ça n'a rien à voir avec Interface Builder. L'erreur IB provenait du plugin PSMTabBarControl IB.

Pour toute autre personne qui se jette dans cela, en PSMOverflowPopUpButton.m changer:

[aCoder encodeInteger:_myTrackingRectTag forKey:@"myTrackingRectTag"]; 

à

[aCoder encodeInt64:_myTrackingRectTag forKey:@"myTrackingRectTag"]; 

et

_myTrackingRectTag = [aDecoder decodeIntegerForKey:@"myTrackingRectTag"]; 

à

_myTrackingRectTag = [aDecoder decodeInt64ForKey:@"myTrackingRectTag"]; 

résolu le problème pour moi, et maintenant il fonctionne à la fois pour les architectures i386 et x86_64.

+0

Il semble que _myTrackingRectTag ait aussi une valeur de déchet, peut-être qu'il a été mal initialisé quelque part? –

Questions connexes