Зачем вдруг увеличиваться и уменьшаться объем памяти, хотя я делаю что-нибудь в игре с набором спрайтов?
Я разрабатываю простую игру с набором спрайтов. Когда я запускаю игру на своем устройстве, я начинаю менять сцены между игровым процессом, основной сценой и сценой уровня. Однако память увеличивается в игровом процессе, но неожиданно увеличивается в 5 раз и автоматически уменьшает фактический уровень. Я просто жду игровую сцену и ничего не делаю. Как вы можете видеть на рисунке.
Я пробую следующее, чтобы выяснить проблему:
- Вызовите метод deinit в классе GamePlay, но он не вызывает метод deinit, пока происходит это неожиданное уменьшение.
- Используйте распределение памяти инструментов, но ничего не можете понять.
Я использую Xcode Debug Session. Что ты предлагаешь? Как я могу понять, почему память увеличивается и уменьшается таким образом?
Я представляю такие сцены.
let scene = GamePlay(size: self.view!.bounds.size, viewController: viewController)
self.view!.presentScene(scene)
class GamePlay: SKScene {
private weak var viewController: GameViewController?
lazy var TimeToAddLive = CFTimeInterval(600)
var gameOverCurrentTime: CFAbsoluteTime!
var totalWaitTime: CFTimeInterval!
var timePassed: Double!
var timeLeft: Int!
var ballNode: [Balls] = []
let parentLaser = SKNode()
let gameObjectsNode = SKNode()
var allBallsConnected = 0
var gunPoint: CGPoint!
var laserChilArray = [SKSpriteNode]()
var remainingLives = SKLabelNode(fontNamed: "Chalkduster")
let back = SKSpriteNode(imageNamed: "back")
var timeLabel = SKLabelNode(fontNamed: "Chalkduster")
lazy var contactSound : SKAction = SKAction.playSoundFileNamed("laserContact.caf", waitForCompletion: false)
lazy var failSound: SKAction = SKAction.playSoundFileNamed("fail2.caf", waitForCompletion: false)
lazy var succesSound: SKAction = SKAction.playSoundFileNamed("succes.caf", waitForCompletion: false)
lazy var fadeIn = SKAction.fadeInWithDuration(0.5)
lazy var fadeOut = SKAction.fadeOutWithDuration(0.5)
lazy var frameForAnimation = 0
lazy var fullScreenAdTime = 0
lazy var doubleContact = 0
let deneme = SKSpriteNode()
let tutBox = SKSpriteNode()
let Pi = CGFloat(M_PI)
var RadiansToDegrees: CGFloat {
get {
return 180 / Pi
}
}
var DegreesToRadians: CGFloat {
get {
return Pi / 180
}
}
Я думаю, что проблема может быть в определении свойств. Я не знаю. Поэтому я пишу свои свойства класса. Когда я представляю сцену GamePlay, это увеличение происходит. Он не увеличивается при представлении уровня сцены, основной сцены или игры поверх сцены.