1

我正在使用与 IB 3.2 一起使用的 Robert Payne 的 PSMTabBarControl 分支(感谢 BTW Robert!):http ://codaset.com/robertjpayne/psmtabbarcontrol/ 。演示应用程序在 64 位系统上运行良好,但是当我尝试在 32 位系统上的 Interface Builder 中打开 XIB 文件时,我得到: IBXMLDecoder: The value (4654500848) for key (myTrackingRectTag) is too large to fit into一个 32 位整数

将应用程序构建为 32 位有效,但随后运行它会给出: PSMTabBarControlDemo[9073:80f] *** -[NSKeyedUnarchiver decodeInt32ForKey:]: value (4654500848) for key (myTrackingRectTag) 太大,无法放入 32 位整数

不确定这是否是在 64 位和 32 位系统之间移动时可能发生的一般 IB 问题,或者这是否是此代码的更具体问题。有没有其他人遇到过这个?

4

1 回答 1

0

我深入了解了它,它与 Interface Builder 无关。IB 错误来自 PSMTabBarControl IB 插件。

对于遇到此问题的其他任何人,在 PSMOverflowPopUpButton.m 中更改:

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

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

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

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

为我解决了这个问题,现在它适用于 i386 和 x86_64 架构。

于 2010-05-04T11:31:49.457 回答