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 при обновлении со старых версий?
У кого-нибудь есть какие-либо объяснения или решения для проблем, которые я перечислил выше?
Заранее спасибо:)