Я работаю над довольно сложной игрой SpriteKit в Swift 4.0.
После того, как я проверил тест на утечку памяти, я обнаружил, что у меня их много.Может кто-нибудь указать мне, почему эти объекты утечки и что я делаю неправильно?
Например, давайте возьмем 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"
}
Почему компилятор выкрикивает, что у меня утечка памяти и как это происходит?