問題タブ [viewdidunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
785 参照

ios - UIViewControllerのビューが表示されているときにアンロードされるのはなぜですか?

この問題は私には起こりませんでした。UINavigationController内にUIViewControllerがあります。メモリ警告を受信すると(レベルは気にしないでください)、表示viewDidUnloadされているコントローラーのメソッドが呼び出されるため、ビューがアンロードされ、すばらしい黒い画面(上部にナビゲーションバーが表示されます)が表示されます。

iOS4.3.3のiPad1でテストしています。

助言がありますか?

0 投票する
1 に答える
414 参照

ios - iOS メモリ管理 - メモリ不足の警告と viewDidUnload

メモリ警告が表示されると、次のエラーが表示されます。

Xcode は、以下の行にエラーがあることを示しています。

私の質問は、この時点で productImages (scrollView である) の割り当てが解除されるのはなぜですか? サブビューをダンプする機会を得るべきではありませんか?

次のように定義されます。

0 投票する
2 に答える
248 参照

ios - UIscrollView内のviewControllerに対してViewDidUnloadが呼び出されていません

私はこの階層を持っています:

MainViewController-> Sub ViewController->UIScrollViewController->いくつかのViewController。

から抜け出すときにSub View Controller、内部のViewControllerがUIScrollViewViewDidUnloadを呼び出して、いくつかのプロセスを閉じることができるようにします。

それを達成する正しい方法は何ですか、私はiOS4.1以降をターゲットにしていると言わなければなりません。

ありがとうシャニ

0 投票する
1 に答える
575 参照

objective-c - iOS デバイス上のすべてのビューをプログラムでアンロードする

編集されたタイトル

Core Data を使用して、サーバーから収集したデータを保存しています。では、アプリが (サーバー上appDelegateapplicationDidBecomeActiveバージョン変数から) 新しいデータをダウンロードする必要があるかどうかを確認します。古い情報がある場合は、新しいデータをダウンロードします。

問題は、私の見解の一部では、tableViews. そして、これらは から抽出されたデータの配列からデータを取得しCore DataますviewDidLoad。アプリを開いて、viewDidLoadが既に呼び出されていて、 のデータを更新するとCore Data、 でビューに入るとtableView、すべての行が間違っています。私の場合、すべての行に最初の行と同じ画像が表示され、テキストはありません。古い配列には、リロードする必要のある破損したデータがあると考えています.これを書いているときにviewDidLoad、再度呼び出す必要があることに気付きました。または、少なくとも のコードviewDidLoadviewDidAppearまたはに移動したくないwillAppear、それはこれが毎回起こることを意味するからです。プロセスを強制的に再起動することを考えましたが、これは不可能であり、Apple はとにかく強制終了を拒否するだろうと読みました。

実際には、すべてのビューを からプログラムでアンロードする方法を知る必要があるだけなAppDelegateので、再度呼び出す必要がありますviewDidLoad。または、もう一度強制viewDidLoadします。

0 投票する
1 に答える
181 参照

iphone - iPhoneアプリ開発でのメモリの問題

私は非常にシンプルなインターフェースを使用し、バックエンドでデータベース処理を行うiphoneアプリケーションを開発しています。ARCOPTIONも有効にしています。私のviewDidLoadメソッドは次のとおりです。

私の.hファイルには、次のように定義されたIBOutletsが含まれています。

DeallocとviewDidUnloadMethodで何をする必要があるか教えてください。ARCOPTIONを使用しています。
また、メモリ割り当てとリークのためにシミュレータでプロファイルオプションを使用してアプリを実行すると、MEMORY LEVELLOWWARNINGとMEMORYLEVELNORMALが表示されることがあります。これの原因は何ですか?

0 投票する
3 に答える
19311 参照

deprecated - viewDidUnload は ios6 で呼び出されなくなりました

Xcode/ios6 の新しいバージョンをインストールしました。viewDidUnload は廃止されました。

アップルドキュメントでは、

viewDidUnload [...] iOS 6.0 で廃止されました。メモリ不足の状態でビューがパージされなくなったため、このメソッドが呼び出されることはありません。

しかし、多くのアプリがこのコールバックを使用して、次のようにプロパティを解放しています。

これは、IBOutlets をリリースするためのベスト プラクティスでした。

では、最初の質問:
iOS 6 でこれらの既存のアプリはどうなるでしょうか? 彼らは漏れますか?

2 つ目:
IBOutlet プロパティを解放するための新しい推奨方法は何ですか? 解放方法では?

0 投票する
3 に答える
14102 参照

objective-c - iOS6でのviewWillUnloadの非推奨とdidReceiveMemoryWarningへの移行

私は新しい開発者で、最初のアプリをリリースしようとしています。viewDidUnload以下のAppleのiOS6リリースノートで説明されているように、の非推奨について混乱しています。

iOS 6では、UIViewControllerのviewWillUnloadメソッドとviewDidUnloadメソッドは非推奨になりました。これらのメソッドを使用してデータを解放する場合は、代わりにdidReceiveMemoryWarningメソッドを使用してください。このメソッドを使用して、ビューコントローラのビューが使用されていない場合は、そのビューへの参照を解放することもできます。これを行う前に、ビューがウィンドウにないことをテストする必要があります。

なぜこうなった?この変更によってアプリのパフォーマンスの問題が発生しないようにするには、どのガイドラインに従う必要がありますか?

ありがとう。

0 投票する
1 に答える
2586 参照

properties - XCode4.5の@synthesizeの自動生成

xcode 4.5では、@ synthesizeが自動生成され、変数の割り当てにアンダースコアプレフィックスのベストプラクティスが実装されていることを理解しています(別のスレッドで説明されています)。私はあなたの助けが大いに感謝される2つの関連する質問があります:

  1. xcode 4.5に関するこれらの詳細を説明するドキュメントはありますか?すぐにどこにあるのかわかりません。これをどうやって見つけますか?

  2. また、IBOutletをドラッグアンドドロップすると、通常の'viewDidUnload'実装がxcode4.4にあった場所でも生成されなくなったようです。それを自分で実装する必要がありますか、それとも不要になる何かが起こっているのでしょうか?

ありがとう!Mo

0 投票する
3 に答える
4037 参照

ios - viewDidUnload で機能するものは didReceiveMemoryWarning に移動する必要がありますか?

新しい iOS 6 では非推奨となり、代わりに UIViewController インスタンスとサブクラスのオブジェクトを管理するためviewDidUnloadに使用するように指示されました。内部で行われた方法のように、didReceiveMemoryWarning内部の UIView の種類に nil を割り当てることも同様に効果的ですか?didReceiveMemoryWarningviewDidUnload

これらの 2 つの方法は動作が異なるように見えるため、これを尋ねています。必要なUIViewを再インスタンス化するために再度呼び出されることをdidReceiveMemoryWarning保証していないようです。viewDidLoad

iOS 6 では、手動で UIView の割り当てを解除する必要なく、メモリ管理が行われるのではないかと思います。UIViewController のライフサイクルを理解する上で見逃していることを教えてください。

0 投票する
3 に答える
2575 参照

ios - iOS - viewDidUnload は呼び出されませんが、didReceiveMemoryWarning が呼び出されます

特定のデバイスでのクラッシュの原因を突き止めようとしています。ビュー コントローラーが を受信して​​いることに気付きましたが、受信didReceiveMemoryWarningしていませんviewDidUnload。そしてAppleによると:

ビュー オブジェクトへの参照を解放するために didReceiveMemoryWarning を使用することはありません。それを使用して、viewDidUnload メソッドでまだ解放していないビュー関連のデータ構造を解放することができます。(ビュー オブジェクト自体は、常に viewDidUnload メソッドで解放する必要があります。)

そう、

A: なぜviewDidUnload呼び出されないのですか? ビュー オブジェクトが呼び出されない場合、ここでビュー オブジェクトを削除することはできません。

B: でビュー オブジェクトを削除しないとしたらdidReceiveMemoryWarning、他にどこで削除しますか?

C: ARC を使用していますが、ビュー オブジェクトを削除したり、配列を nil に設定したりする必要はありますか?