2017-07-09 5 views
2

私のゲームではメモリリークがあります。 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

ログメッセージは何ですか? –

+1

私はそれが何か他のものだと思う...ああ待って...私はちょうど推測することができます:)あなたはそれが関連していると思う楽器とコードから画像を投稿する必要があります。 – Whirlwind

+2

Fluidが次のように述べています。Admobがあなたの犯罪者であるかどうかを確認する簡単な方法は、関連するすべてのAdMobコードを削除し、漏れが発生していないかどうかを確認することです。 – Whirlwind

答えて

1

たときに彼らが必要死ぬされていないクラスを決定するために、印刷メッセージで、あなたのクラスにdeinitを追加します。次に、これらのクラスがインスタンス化された場所に移動し、オプションの型の変数weakまたはunownedに変数を設定します。

これで問題が解決しない場合は、クロージャーで問題が発生する可能性がありますが、ARCの基本を理解した後でクロージャーのリークを覚えることについて心配しています。ここで

はARCがどのように動作するかを、より詳細にリークを追跡する方法を示しています素晴らしいチュートリアルです:あなたの2番目の質問に

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

、いや、メモリリークは、あなたのための巨大な関心事ではないかもしれません。しかし、それはまた大きな懸念であるかもしれません。調べる方法は、アプリを1日中放置するか、30分かけてさまざまなレベルを過ごし、メモリ使用量が増え続けるかどうかを確認することです。

メモリ使用量が増加し続ける場合、修正が必要な問題があります。それ以外の場合は、必要以上に多くのリソースを使用しています。これは理想的ではありませんが、どちらかを解決するために必ずしも重要ではありません。

関連する問題