Interface Builder 错误:IBXMLDecoder:键的值太大,无法放入 32 位整数

发布于 2024-08-31 03:19:47 字数 600 浏览 7 评论 0原文

我正在使用 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] *** -[NSKeyedUnarchiverdecodeInt32ForKey:]:键 (myTrackingRectTag) 的值 (4654500848) 太大,无法容纳 32 位整数

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

I'm working with Robert Payne's fork of PSMTabBarControl that works with IB 3.2 (thanks BTW Robert!): http://codaset.com/robertjpayne/psmtabbarcontrol/. The demo application works fine on 64-bit systems, but when I try to open the XIB file in Interface Builder on a 32-bit system I get:
IBXMLDecoder: The value (4654500848) for key (myTrackingRectTag) is too large to fit into a 32 bit integer

Building the app as 32 bit works, but then running it gives:
PSMTabBarControlDemo[9073:80f] *** -[NSKeyedUnarchiver decodeInt32ForKey:]: value (4654500848) for key (myTrackingRectTag) too large to fit in 32-bit integer

Not sure if this is a generic IB issue that can occur when moving between 64 and 32 bit systems, or if this is a more specific issue with this code. Has anyone else run into this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮光之海 2024-09-07 03:19:47

我查到了这一点,它与 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 架构。

I got to the bottom of this and it has nothing to do with Interface Builder. The IB error was coming from the PSMTabBarControl IB plugin.

For anyone else who runs into this, in PSMOverflowPopUpButton.m changing:

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

to

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

and

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

to

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

resolved the issue for me, and now it works for both the i386 and x86_64 architectures.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文