我很好奇当showsFields
开启时,内存使用量增长得非常快?它可以在30秒内增长到500MB。如果我的mac只有8GB的RAM,我可能在内存警告之前调试不到8分钟,在真实设备上进行调试时效果最差。
以下屏幕截图是从真实设备(iOS 9.2)进行测试的。
您可以通过创建SpriteKit项目快速尝试,并在视图控制器内的showsFields
方法中启用viewDidLoad()
。
skView.showsFields = true
如果您想了解showsFields
的作用,请将此代码段放在场景的-didMoveToView(view:)
方法中。
override func didMoveToView(view: SKView) {
let myField = SKFieldNode.springField()
myField.position = CGPointMake(frame.midX, frame.midY)
myField.strength = 1.0
self.addChild(myField)
}
以下是来自Apple的showsFields
讨论
讨论
启用此调试选项后,每次渲染一帧时,都会在场景后面绘制一个图像,显示场景中包含的任何物理场的效果。
答案 0 :(得分:1)
看起来每帧绘制的调试图像没有被正确清除,这可能会导致内存泄漏。
最好通过https://developer.apple.com/bug-reporting/向Apple提交错误报告 所以他们知道有多个人遇到这个问题,希望能给予更高的优先权。
希望有所帮助。
亲切的问候, 木孔德