Я создаю iOS-игру, нацеленную на новый iOS 7 и Sprite Kit, используя узлы-эмиттеры и физику для улучшения игрового процесса. При разработке приложения у меня возникла серьезная проблема: вы создаете свои сцены, узлы, эффекты, но когда вы закончите и вам нужно вернуться на главный экран, как вы освободите всю память, выделенную этими ресурсами?
В идеале ARC должна освобождать все, и приложение должно вернуться к уровню потребления памяти, который он имел до создания сцены, но это не то, что происходит.
Я добавил следующий код, как метод dealloc представления, который рисует сцену и отвечает за удаление всего при закрытии (удалении):
- (void) dealloc
{
if (scene != nil)
{
[scene setPaused:YES];
[scene removeAllActions];
[scene removeAllChildren];
scene = nil;
[((SKView *)sceneView) presentScene:nil];
sceneView = nil;
}
}
- sceneView - это UIView, который является контейнером сцены.
- сцена является расширением класса SKScene, создавая все объекты SKSpriteNode
Я бы очень признателен за любую помощь в этом вопросе.