2017-01-25 3 views
1

私はSwift 2.3アプリをTestFlight経由で20人使っています。別の人気アプリに付随するアプリであるため、ユーザーはしばしば2つのアプリを切り替えます。彼らはメインアプリを少し使い、次に私のアプリに切り替えます。ユーザーがiOSアプリを申し立てると、他のiOSアプリの電源が切れますか?それは事ですか?

私のアプリに切り替えてメインアプリに戻ると、メインアプリは完全に再起動しなければならず、数分かかる場合があります。彼らは他のアプリが主なアプリをこのようにシャットダウンさせないと主張し、私のアプリを "修正"して他のアプリを強制的に再起動しないようにしたいと主張する。

私はiOS開発には新しく、これはちょっと難解です。他のアプリを強制終了させるアプリの面がありますか?電池が多すぎますか?他に何か?これが起こる可能性を減らすことを目指すために、これをテストする方法やメトリックがありますか?

+0

をgアプリが何をしているのかは、問題の原因となっていることだけです。 –

+0

それはまたあなたの仲間に他のアプリかもしれません。 –

+0

6 + iphoneの小さなRAMとの組み合わせでアプリケーションを作成するこれはいつも非常に早いです – muescha

答えて

1

これはおそらくメモリリークです。

func applicationDidReceiveMemoryWarning(application: UIApplication) { 
    //Print and send to analytics 
} 

チェックこの質問:How to implement didReceiveMemoryWarning in Swift?

はその後、すべてのビューコントローラにこれを追加します。

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    //Print and send to analytics 
    //Dispose of any resources that can be recreated 
} 

チェックメモリレポート:たまに

は、この内部AppDelegateを追加します。あなたが何かをするとき、ある特定のボタンを押すと、メモリ使用量が明らかに増加し、数秒後には低下しません。それはおそらくリークです。

また、「プロファイルのインスツルメント」をクリックすると、どのプロセスがどの量のメモリを使用しているかについてアプリを使用している間、詳細なレポートが表示されます。

enter image description here

私の経験のメモリリークが原因で閉鎖のほとんどが起こるので:閉鎖メモリリークについて

//Leaks memory 
    ez.runThisAfterDelay(seconds: 2) { 
     self.doSomething() 
    } 

    //Doesn't leak memory 
    ez.runThisAfterDelay(seconds: 2) { [weak self]() ->() in 
     self?.doSomething() 
    } 

いくつかのソース:knowinなし

Shall we always use [unowned self] inside closure in Swift

http://blog.stablekernel.com/how-to-prevent-memory-leaks-in-swift-closures

2

メモリが多すぎます。それが主な理由です。あなたのアプリはあまりにも多くのメモリを消費している可能性があります。そのため、iOSは他の中断されているアプリを強制終了しなければなりません。

メモリの問題を見つけて修正するには、アプリをインストールしてプロフィールを作成します。

+0

thats正しいことですが、これはかなり早いですが、現在のRAMはAppleのwebside iPhone6S](https://en.wikipedia.org/wiki/IPhone_6S)を参照してください。[iPhone6](https://en.wikipedia.org/wiki/IPhone_6)私は今6S +に満足しています。なぜなら、これがなくなったからです。 – muescha

+0

大丈夫です。それは私に調査の出発点を与えます! – bflora2

関連する問題