SKSpriteNode утечки памяти - PullRequest
0 голосов
/ 25 января 2019

Я работаю над довольно сложной игрой SpriteKit в Swift 4.0.

После того, как я проверил тест на утечку памяти, я обнаружил, что у меня их много.Может кто-нибудь указать мне, почему эти объекты утечки и что я делаю неправильно?

enter image description here

Например, давайте возьмем background.Я объявляю это глобально, и я только устанавливаю положение, размер и структуру.Все мои объекты будут его детьми.

// on viewDidLoad
background.texture = SKTexture(imageNamed: "ms_background")
background.size = CGSize(width: screen_width, height: screen_height)
background.position = CGPoint.zero
background.zPosition = -1
addChild(background)

Другой пример - zen_button.Это весь код, который у меня есть:

// after background declaration

zen_button_string = "ms_zen_untap"

zen_button.texture = SKTexture(imageNamed: "ms_zen_untap")
zen_button.position = get_object_position(object_name: "ms_zen")
zen_button.size = get_object_size(object_name: "ms_zen")
zen_button.zPosition = 1
zen_placeholder.addChild(zen_button)

// on touchesBegan,Moved and Ended i check if the user has his finger over the 
// button, in order to change between tap/untap image

if (zen_placeholder.frame.contains(point) && zen_button_string == "ms_zen_untap")
{
   zen_button.texture = SKTexture(imageNamed: "ms_zen_tap")
   zen_button_string = "ms_zen_tap"
}
else if (!zen_placeholder.frame.contains(point) && zen_button_string == "ms_zen_tap")
{
   zen_button.texture = SKTexture(imageNamed: "ms_zen_untap")
   zen_button_string = "ms_zen_untap"
}

Почему компилятор выкрикивает, что у меня утечка памяти и как это происходит?

...