加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – iMac – 缺少x86版本的GameKit

发布时间:2020-12-16 07:34:12 所属栏目:百科 来源:网络整理
导读:如果我运行此命令: file /System/Library/Frameworks/GameKit.framework/GameKit 我明白了: /System/Library/Frameworks/GameKit.framework/GameKit:Mach-O 64位 动态链接共享库x86_64 这相当于我的iMac(一个全新的)缺少x86版本的GameKit.所以我的x86 Mac
如果我运行此命令:

file /System/Library/Frameworks/GameKit.framework/GameKit

我明白了:

/System/Library/Frameworks/GameKit.framework/GameKit:Mach-O 64位
动态链接共享库x86_64

这相当于我的iMac(一个全新的)缺少x86版本的GameKit.所以我的x86 Mac应用程序(它是一个C#Xamarin.Mac应用程序)在引用GameKit时崩溃了.

有谁知道这对未来的Mac来说是否会成为一个持续存在的问题?或者这是我的机器上缺少的Apple bug?

解决方法

一切都指向苹果在某些时候弃用32位(架构i386)代码.这是因为他们利用从32位到64位代码的切换来为Objective-C运行时添加功能,使64位运行时功能更加强大.

我没有对此做出任何确认,但从PowerPC过渡的处理方式以及64位代码如何弃用大量古代技术来判断,这可能并不遥远.

虽然我的机器上确实有32位GameKit,但如果未来的OS X版本可能不包含32位代码,那就不会让我感到惊讶.而且由于所有包含GameKit的Mac都必须能够运行64位代码(Mountain Lion的要求),我能给出的最佳建议是添加64位版本的应用程序.我不知道MonoMac是否支持64位代码,但这是你应该去的方向.

我怀疑操作系统更新(例如即将发布的10.8.3)可能会安装一个恰好包含32位代码的GameKit版本.或者它可能会删除我们其他人的32位代码.但我绝对不会指望Apple维护或增加32位代码的新功能,正是因为所谓的32位Objective-C无法支持他们喜欢的许多功能(例如ARC或合成ivars)运行时不破坏二进制兼容性

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读