objective-c – iMac – 缺少x86版本的GameKit
如果我运行此命令:
file /System/Library/Frameworks/GameKit.framework/GameKit 我明白了: /System/Library/Frameworks/GameKit.framework/GameKit:Mach-O 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)运行时不破坏二进制兼容性 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |