私はSwiftでゲームを作ったし、シングルとマルチプレイヤーモードがあり、アプリが150を占めているのでメモリ管理に問題があるようだMBと私は理由が分かりません。 xcodeのメモリデバッガは、マルチプレイヤーゲームを選択すると15の問題があることを示していますが、シングルプレイヤーモードではリークはなく、それでも150 MBの使用量を示しています。 ここでは、デバッガの実際のスクリーンショットを示しています。これらの三角形、円、およびロムのすべてのヘルプに感謝します。ありがとうございます。 xcode(Swift 3)でメモリリークを修正する方法
2
A
答えて
2
強い参照サイクルのように見えます。 通常、これはクロージャで使用するオブジェクトをweak
として宣言しないと発生します。 強い基準周期が何であるかを理解するために、次のリソースを参照してください
- Blog post about strong reference cycles
- WWDCのビデオを利用できる(例えばhereとhere)
WWDCのビデオがあるが、少し古い、主なアイデアはまだ同じです。少なくとも2つのオブジェクトは、(推移的に)強いの参照を保持しています。両方が解放されたとき(例えば、GameScene
が割り当て解除されたとき)、それらは依然として互いにポイントするので、システムは割り当てを解除できません。
通常、あなたはクロージャのコンテキストで強い参照サイクルを取得:
myMethod(...) { (param1, param2) in
self.myVariable = ...
}
あなたのコードでは、このような構造を持っている場合は、自己weak
を作ってみます。すなわち
myMethod(...) { [unowned self] (param1, param2) in
self.myVariable = ...
}
私はコードが表示されないので、問題がどこにあるか私は正確に見ることができないが、それはあなたがあなたの辞書に強い基準周期を持っているようです。その後、クロージャの問題ではないかもしれません。
関連する問題
- 1. メモリリークの修正方法は?
- 2. Swift 3 URLSessionメモリリーク
- 3. メモリリークを修正するC++
- 4. メモリリークの修正
- 5. iPhoneでメモリリークを修正する方法がわからない
- 6. xcodeで重複する音楽を修正する方法
- 7. Xcode 8/Swift 3でiOSライブビューを作成する方法
- 8. SwiftのLLdbエラー - 修正方法?
- 9. Macで古いxcodeインストールを修正する方法
- 10. Swift 3/Xcodeテキストアライメント
- 11. ViewControllerでPageMenuを修正する方法Swift
- 12. メモリリークを修正するためのValgrind
- 13. Googleログインxcode swift 3 xcode 8
- 14. Swift 3のポインタを使ってデータを修正する
- 15. アラートコントローラのアクションをスクロールする方法は? Xcode 8、Swift 3、IOS
- 16. Xcode 3とXcode 4:Snow Leopardで両方をインストールする正しい方法
- 17. Javaでネストされたクラスのメモリリークを見つけて修正する方法
- 18. NSIS 3のUAC_AsUser_ExecShellでエラーを修正する方法は?
- 19. バックグラウンドでWebview.reload Xcode 8.2 swift 3
- 20. スローコンパイルスウィフトソースファイル - Xcode 8 swift 3
- 21. xcodeのカスタムカメラ、Swift 3
- 22. Xcode Swift 3 TableView cellselection
- 23. Xcodeの警告を速やかに修正する方法
- 24. Swift 3でプロトコルを正しく設定する方法
- 25. Swiftでスタティックセルを正しく実装する方法3
- 26. SWIFT 3でXCode 8にリダイレクト3
- 27. PHP、Xcode 8、Swift 3 - WebサーバーからXcodeシミュレータにアレイを返す方法
- 28. Xcode 8 - Swift 3 - アプリケーションを中断する
- 29. ビデオプレビューに合わせる方法画像ビューXcode Swift 3
- 30. Bootstrap 3の小さなフリックを修正する方法
ありがとうございました、今私は参考文献について読んでいます。以前に言及した問題にもかかわらず、私はRAM使用の問題は完全に別の話だと思う。シングルプレイヤーモードでは問題はなく、それでもRAMが多すぎるからだ。どのくらい多くのRAMを使用しているかを調べる方法はありますか?私は問題がイメージではなく、サイズではないと思っています(最大500 KBです)が、解像度ではあります。私は今これについての詳細な情報を探しています。あなたが良い資源を知っていれば、それを歓迎します!ありがとう! – i6x86
割り当てリストはあなたが探しているものかもしれません:https://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started – slashburn