应用程序崩溃:内存问题?
问题描述:
我正在试验一下Sprite Kit,我注意到当我让我的应用程序运行一段时间后崩溃。应用程序崩溃:内存问题?
我想要做的,是画遵循我的球员运动的线,我这样做,像这样:
var ref: CGMutablePathRef = CGPathCreateMutable()
var shapeLine: SKShapeNode!
override func update(){
shapeLine.removeFromParent()
CGPathAddLineToPoint(ref, nil, player.position.x, player.position.y)
shapeLine = SKShapeNode(path: ref)
shapeLine.lineWidth = 3
shapeLine.path = ref
addChild(shapeLine)
}
这工作得很好,我删除节点每次,更新路径,并用新路径创建另一个节点。
重点是几秒钟后(约25)它崩溃。 节点是不变的,因为我每次都添加和删除节点。帧速率在碰撞前开始减小,并从30fps变为20fps。
我觉得奇怪的是内存的使用,它增加了很多,甚至在崩溃前使用大约800MB。
有没有我遗忘的东西,还是只是道路增加太多而无法处理?
为什么不尝试做一个实验来改变已经存在的'shapeLine'的路径,以查看问题的一部分是否来自不断创建新的'SKShapeNode'。换句话说,创建'shapeLine'一次,然后在其他时间,只需更新路径。 –
已经尝试过,结果相同:/ – DevX10
运行频率如何?每一帧?例如,在25秒内,调用了多少次'update'? –