我正在开发一个使用Apple SpriteKit和CoreImage框架的应用程序。在iOS 10上,该应用程序可以启动,并且是流畅的,但在iOS 11上,该应用程序停止,在使用分析工具“Zombies”后,我得到了这样的消息
[MTLDebugTexture版本]:发送到已取消分配示例的消息
(more确切地说,它是通过jet::访问的AGXMetalA8X示例。create_texture(),但之前已被CoreImage释放...所有这些类都属于框架,而不是我的应用程序)
我尝试了许多针对此类错误提出的解决方案,但问题似乎与我的代码没有直接关系。
通过在Info.plist文件中添加选项“PrefersOpenGL = YES”,就不会再出现这种错误。但是,启用此选项后,图形渲染效果非常差。
我也尝试过保持对我创建的所有SKNode元素的强引用,以减少内存消耗,但这只会延迟错误。此外,它不是一个非常内存密集型的应用程序(平均消耗约40MB RAM,没有明显的泄漏)
XCode 9、Swift 3.2、软件开发工具包iOS 11
1条答案
按热度按时间oaxa6hgo1#
也许你没有初始化对象,它看起来在分配之前就呈现了。你可以使用
awakeFromNib
方法来修复这个问题。