如何解决泄漏问题?

时间:2017-07-09 03:44:40

标签: ios swift xcode sprite-kit

所以我的游戏中有内存泄漏。我认为它来自Admob和游戏中心集成。有什么建议可以解决这个问题吗?我尝试使用泄漏仪器找到问题,但我不知道该怎么做。还有值得解决泄漏问题吗?我每次都有大约7次泄漏。

//Ad banner

        self.banner = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
        self.banner.adUnitID = "ca-app-pub-3940256099942544/6300978111"
        self.banner.rootViewController = self
        let request: GADRequest = GADRequest()
        self.banner.load(request)
        self.banner.frame = CGRect(x: 0,y: view.bounds.height - self.banner.frame.size.height, width: self.banner.frame.size.width, height: self.banner.frame.size.height)

        self.view.addSubview(self.banner!)


//gamecenter authentication 


    func authPlayer () {
            let player = GKLocalPlayer.localPlayer()
            player.authenticateHandler = {
                (view, error) in
                if view != nil {
                    self.present(view!, animated: true,completion: nil)

                }
            }
        }

enter image description here

1 个答案:

答案 0 :(得分:1)

使用打印消息将deinit添加到您的类中,以确定哪些类不应该死亡。然后,转到实例化这些类的位置,并使用可选类型生成weakunowned个变量。

如果这不能解决问题,那么你可能会遇到闭包问题,但是只有在你理解ARC的基础知识之后我才会担心学习闭包捕获漏洞。

这是一个很棒的教程,它展示了ARC如何工作以及如何更详细地追踪泄漏:

https://www.raywenderlich.com/134411/arc-memory-management-swift

对于你的第二个问题,不,内存泄漏对你来说可能不是一个大问题。但是,它们也可能是一个巨大的问题。找出答案的方法是让你的应用程序保持一整天,或花半小时通过不同的级别,看看你的内存使用量是否持续上升。

如果你的记忆力不断增加,那么你就会遇到一个肯定需要修复的问题。否则,您的应用只会使用比所需更多的资源,这不是理想的,但也不一定非常关键。