【问题标题】:Interface Builder error: IBXMLDecoder: The value for key is too large to fit into a 32 bit integerInterface Builder 错误:IBXMLDecoder:key 的值太大,无法放入 32 位整数
【发布时间】:2010-05-03 13:33:59
【问题描述】:

我正在使用 Robert Payne 的 PSMTabBarControl 分支,该分支可与 IB 3.2 一起使用(感谢 BTW Robert!):http://codaset.com/robertjpayne/psmtabbarcontrol/。演示应用程序在 64 位系统上运行良好,但是当我尝试在 32 位系统上的 Interface Builder 中打开 XIB 文件时,我得到: IBXMLDecoder:键 (myTrackingRectTag) 的值 (4654500848) 太大,无法放入 32 位整数

将应用程序构建为 32 位工作,但随后运行它会给出: PSMTabBarControlDemo[9073:80f] *** -[NSKeyedUnarchiver decodeInt32ForKey:]:键 (myTrackingRectTag) 的值 (4654500848) 太大,无法容纳 32 位整数

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

【问题讨论】:

    标签: cocoa interface-builder psmtabbarcontrol


    【解决方案1】:

    我已经深入了解了,它与 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 架构。

    【讨论】:

    • 听起来 _myTrackingRectTag 也有一个垃圾值,也许它在某个地方被错误初始化?
    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2023-03-22
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多