SpriteKit - 为什么我的游戏会在新iOS版本发布时出现错误?

时间:2016-06-14 20:49:27

标签: ios xcode sprite-kit

spritekit实际上如何工作?框架代码是编译到应用程序中还是iOS本身的一部分。我注意到每次对iOS进行重大更新我发现自己不得不重写一堆代码并修复我的spritekit游戏中的错误。那是为什么?

2 个答案:

答案 0 :(得分:2)

SpriteKit运行时环境在手机上,不属于您的应用程序。这样可以节省空间(否则每个应用程序都会包含他们使用的所有运行时库的副本,从而导致大量重复),但可能会导致您遇到的问题,运行时更新可能会导致#39 ;破'之前有效的应用程序。

这是因为当您调用iOS函数(在SpriteKit,UIKit等中)时,您的代码会分支到存储在手机本身中的某些代码。如果此代码有更改(使用iOS更新)并突然期望CGVector而不是CGPoint,或函数调用中的第3个参数,则程序将失败。

有些编译器有能力绑定'运行时库与可执行文件一起使用,使应用程序对操作系统升级更具弹性,但这可能会产生连锁效应,例如运行时运行时间为几年的程序(对于某些代码而言,甚至可能是几十年) (已经处理过)只是不再工作了(Y2K提供了这方面的例子,IBM大型机上的旧版COBOL运行时环境不符合Y2K标准)并使应用程序达到 - 与只需要更新运行时的一个增量版本相比,date是一项庞大的工作。

答案 1 :(得分:1)

它是iOS的一部分。您可以通过在Info.plist中设置PrefersOpenGL = YES标志,在iOS 9.X中使用以前的OpenGL模式,有关详细信息,请参阅https://stackoverflow.com/a/37768928/763355