このコードを SKScene sublass init メソッドで実行すると
for (int i = 0; i < 100; i++) {
SKShapeNode *shape = [SKShapeNode node];
shape.antialiased = NO;
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, CGRectMake(arc4random()%320, arc4random()%320, 10, 10));
shape.path = path;
[shape setStrokeColor:[UIColor blackColor]];
CGPathRelease(path);
[self addChild:shape];
[shape removeFromParent];
}
そして、SKView制御コントローラーでこのコードを実行するたびに
SKView * skView = (SKView *)self.view;
// Create and configure the scene.
SKScene * scene = [ZTMyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
メモリがいっぱいになってクラッシュするまで、メモリ使用量が増加します。SKSpriteNode を使用すると、これは発生しません。誰でもこれを修正できますか?
概要: スプライト キット テンプレート プロジェクトを作成し、多くの SKShapeNode を追加して、古い SKScene を新しいものに置き換えます。
サンプルプロジェクトをgithubに追加しましたhttps://github.com/zeiteisen/MemoryTest