Ошибка Interface Builder: IBXMLDecoder: значение ключа слишком велико, чтобы поместиться в 32-разрядное целое число - PullRequest
1 голос
/ 03 мая 2010

Я работаю с вилкой Роберта Пейна PSMTabBarControl, которая работает с IB 3.2 (спасибо, кстати, Роберт!): http://codaset.com/robertjpayne/psmtabbarcontrol/. Демонстрационное приложение отлично работает на 64-битных системах, но когда я пытаюсь открыть XIB файл в Интерфейсном Разработчике на 32-битной системе я получаю: IBXMLDecoder: значение (4654500848) для ключа (myTrackingRectTag) слишком велико, чтобы поместиться в 32-разрядное целое число

Сборка приложения как 32-битного работает, но затем запустить его дает: PSMTabBarControlDemo [9073: 80f] *** - [NSKeyedUnarchiver decodeInt32ForKey:]: значение (4654500848) для ключа (myTrackingRectTag) слишком большое, чтобы поместиться в 32-разрядное целое число

Не уверен, является ли это общей проблемой IB, которая может возникнуть при переходе между 64- и 32-разрядными системами, или это более конкретная проблема с этим кодом. Кто-нибудь еще сталкивался с этим?

1 Ответ

0 голосов
/ 04 мая 2010

Я дошел до сути, и это не имеет ничего общего с Interface Builder. Ошибка IB исходила от плагина IB PSMTabBarControl.

Для всех, кто сталкивается с этим, в PSMOverflowPopUpButton.m изменилось:

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

до

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

и

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

до

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

решил эту проблему для меня, и теперь он работает для архитектур i386 и x86_64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...