我有一个ViewController
,它创建和呈现一个SKScene *scene
,我将在下面显示。目前,我正在介绍一个包含大量节点、对象等的场景子类。
最近开始确保我没有遇到和性能问题,当我注意到我似乎有内存泄漏时,大约+ 1到2 mbs 。惊慌失措,我开始删除物品,直到我只剩下VC中的以下方法...
- (void)viewDidLoad {
[super viewDidLoad];
// Configure the view.
SKView *skView = (SKView *)self.view;
if (!skView.scene) {
skView.showsFPS = YES;
skView.showsNodeCount = YES;
skView.showsPhysics = YES;
// Create and configure the scene.
SKScene *testScene = [SKScene sceneWithSize:CGSizeMake(1000, 1000)];
// Present the scene.
[skView presentScene:testScene];
}
// Do things after here pertaining to initial loading of view.
}
令我惊讶的是,应用程序内存加载大约为 1.2 MB,并且仍然每秒继续增长(这次是 ~0.3 MBS)。我很迷茫,不明白为什么即使什么都不介绍也会导致这样的问题。如果有人知道我错过了什么,请告诉我 - 谢谢!
答案非常简单。我很高兴我注意到要检查这一点,所以我想我会发布修复程序,以防有人遇到同样的问题。
我所要做的...删除此行。
skView.showsPhysics = YES;
Guess精灵套件保留了它"绘制"的每个物理边界,并且考虑到每个节点位置由于最小的数字不准确性而略有移动,它基本上在每个FPS中重新绘制每个形状。所以,祝你编码愉快!