2017-01-16 15 views
0

私はView Controller上で何もしません。アプリケーションの動作中にグラフが変化しています。メモリリークXcode 8 instrument

これは本当にリークですか?それは緑色のチェックマークが表示さ

enter image description here

まず時間が、それは1つのリークして、新たなリークを示しています。

つまり、リークがないか、またはリークはまだ1つありますが、新しいリークはありません。

私は実際にマネージャの強力な参照を含むアプリケーションデリゲートを持っています。

class AppDelegate { 

var applicationManager = ApplicationManager() 

} 

と私は、このコードは、問題をリードできた私は関数に

func logInUser() 
    { 
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
     fatalError() 
    } 

    let apiService = appDelegate.applicationManager.apiService 

    guard let email = emailTextField.text, let password = passwordTextField.text else { 
     return 
    } 
    apiService.loginUserWith(email, password: password) {(result) in 
} 

を持って

class ApplicationManager 
{ 
    lazy var apiService: APIService = { 

    let service = APIService() 

    return service 

    }() 

    lazy var facebookService: FacebookService = { 

    let service = FacebookService() 

    return service 

    }() 
} 

ApplicationManagerの

にいくつかのサービスがありますか?私も、私は1つの漏出したオブジェクト(それは別の以前のプロジェクトにあります)が、管理者やサービスの同じ実装とを持っている

を参照してください新しいツールを使用して

enter image description here

+0

漏れがリークです。オブジェクトが漏れてしまえば、それは永遠に漏れてしまいました。しかし、それは単なる一つのオブジェクトです。一度、おそらくあなたは本当に気にしません。インストゥルメントを使用して、問題のオブジェクトのメモリ管理を追跡することができます。 – matt

+0

@matt、多分間違っている、それは分かりました)しかし、私が割り当てたサービスだけが漏れを引き起こしたという奇妙なことに、ソースを共有できますか? –

+0

リーク報告のバグがあります。http://stackoverflow.com/questions/39944703/object-hierarchy-is-causing-a-memory-leak-in-swiftおそらくあなたのリークは実際ではありません。 – matt

答えて

2

私はリークが実際に存在しないことを示唆するつもりです。 Xcodeの8.2のリリースノートは言う:

MacOSのためのメモリデバッガおよびiOSシミュレータは、型列挙型のフィールド、または特定のObjective-Cフレームワーククラスから継承するクラスのいずれかを含むスウィフトのクラスの偽のメモリリークの報告を修正します。 (27932061)

あなたはXcodeの8.1を使用しているので、我々はしかし、正確などのような状況の下で、さらにはバグが完全に固定されているかどうか(「スウィフトのクラスの偽のメモリリークの報告は、」このバージョンであることを知っていますXcode 8.2は、私には不明なままです)。

さらに、githubサンプルプロジェクトをダウンロードしてXcode 8.2.1で実行し、Instrumentsやメモリグラフのいずれのリークも報告されていないことを確認しました。以下は、Instrumentsの出力です。

enter image description here

+0

助けてくれてありがとう!)本当に感謝しています。私のアプリはすべてリークで書かれていると思いますが、それは狂っています。 –