tvOS 10 ошибок выделения памяти?

Я пишу приложение для tvOS, в котором есть проблемы с утечками / выделением памяти. После обновления Swift 3 и tvOS 10 я заметил существенные проблемы с памятью. Предполагается, что приложение будет работать постоянно в течение нескольких дней / недель, а с Swift 2 и tvOS 9 оно работает нормально. Теперь мое приложение работает в течение 2-3 дней и вылетает. Уже более недели я бьюсь головой об стол.

Я использовал инструменты для диагностики и устранения большинства (если не всех) утечек, но в моем приложении все еще наблюдается медленный рост использования памяти. Несмотря на отсутствие утечек в инструментах, трекер использования памяти в XCode по-прежнему показывает медленный и устойчивый рост памяти. Я отслеживал распределение с помощью инструментов и обнаружил некоторые странные вещи:

1) Когда я добавляю SKCropNode в SKSpriteNode, мои постоянные байты и # быстро увеличиваются.

var cropNode: SKCropNode!

func prepare() {

    let node = SKSpriteNode()
    node.anchorPoint = self.anchorPoint
    node.size = self.frame.size
    node.color = UIColor.black

    self.cropNode = SKCropNode()
    self.cropNode.maskNode = node
    self.addChild(self.cropNode)
}

2) Я добавил много много мер, чтобы очистить все, когда я закрывал сцену, но опять же, постоянные байты и # продолжают расти. Я использую слабые ссылки там, где они уместны.

func exit() {

    let fadeAction = SKAction.fadeAlpha(to: 0.0, duration: 0.35)
    self.run(fadeAction, completion: { [weak self] in

        self?.removeAllActions()
        self?.removeAllChildren()
        self?.view?.presentScene(nil)
        self?.removeFromParent()
        self?.view?.removeFromSuperView()
    })
}

Мои вопросы:

Кто-нибудь сталкивался с проблемами памяти в Xcode 8, Swift 3 или tvOS при обновлении со старых версий?

У кого-нибудь есть какие-либо объяснения или решения для проблем, которые я перечислил выше?

Заранее спасибо:)

0 ответов

Другие вопросы по тегам