問題タブ [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.
ios - UIViewControllerのビューが表示されているときにアンロードされるのはなぜですか?
この問題は私には起こりませんでした。UINavigationController内にUIViewControllerがあります。メモリ警告を受信すると(レベルは気にしないでください)、表示viewDidUnload
されているコントローラーのメソッドが呼び出されるため、ビューがアンロードされ、すばらしい黒い画面(上部にナビゲーションバーが表示されます)が表示されます。
iOS4.3.3のiPad1でテストしています。
助言がありますか?
ios - iOS メモリ管理 - メモリ不足の警告と viewDidUnload
メモリ警告が表示されると、次のエラーが表示されます。
Xcode は、以下の行にエラーがあることを示しています。
私の質問は、この時点で productImages (scrollView である) の割り当てが解除されるのはなぜですか? サブビューをダンプする機会を得るべきではありませんか?
次のように定義されます。
ios - UIscrollView内のviewControllerに対してViewDidUnloadが呼び出されていません
私はこの階層を持っています:
MainViewController-> Sub ViewController->UIScrollViewController->いくつかのViewController。
から抜け出すときにSub View Controller
、内部のViewControllerがUIScrollView
ViewDidUnloadを呼び出して、いくつかのプロセスを閉じることができるようにします。
それを達成する正しい方法は何ですか、私はiOS4.1以降をターゲットにしていると言わなければなりません。
ありがとうシャニ
objective-c - iOS デバイス上のすべてのビューをプログラムでアンロードする
編集されたタイトル
Core Data を使用して、サーバーから収集したデータを保存しています。では、アプリが (サーバー上appDelegate
のapplicationDidBecomeActive
バージョン変数から) 新しいデータをダウンロードする必要があるかどうかを確認します。古い情報がある場合は、新しいデータをダウンロードします。
問題は、私の見解の一部では、tableViews
. そして、これらは から抽出されたデータの配列からデータを取得しCore Data
ますviewDidLoad
。アプリを開いて、viewDidLoad
が既に呼び出されていて、 のデータを更新するとCore Data
、 でビューに入るとtableView
、すべての行が間違っています。私の場合、すべての行に最初の行と同じ画像が表示され、テキストはありません。古い配列には、リロードする必要のある破損したデータがあると考えています.これを書いているときにviewDidLoad
、再度呼び出す必要があることに気付きました。または、少なくとも のコードviewDidLoad
。viewDidAppear
またはに移動したくないwillAppear
、それはこれが毎回起こることを意味するからです。プロセスを強制的に再起動することを考えましたが、これは不可能であり、Apple はとにかく強制終了を拒否するだろうと読みました。
実際には、すべてのビューを からプログラムでアンロードする方法を知る必要があるだけなAppDelegate
ので、再度呼び出す必要がありますviewDidLoad
。または、もう一度強制viewDidLoad
します。
iphone - iPhoneアプリ開発でのメモリの問題
私は非常にシンプルなインターフェースを使用し、バックエンドでデータベース処理を行うiphoneアプリケーションを開発しています。ARCOPTIONも有効にしています。私のviewDidLoadメソッドは次のとおりです。
私の.hファイルには、次のように定義されたIBOutletsが含まれています。
DeallocとviewDidUnloadMethodで何をする必要があるか教えてください。ARCOPTIONを使用しています。
また、メモリ割り当てとリークのためにシミュレータでプロファイルオプションを使用してアプリを実行すると、MEMORY LEVELLOWWARNINGとMEMORYLEVELNORMALが表示されることがあります。これの原因は何ですか?
deprecated - viewDidUnload は ios6 で呼び出されなくなりました
Xcode/ios6 の新しいバージョンをインストールしました。viewDidUnload は廃止されました。
アップルドキュメントでは、
viewDidUnload [...] iOS 6.0 で廃止されました。メモリ不足の状態でビューがパージされなくなったため、このメソッドが呼び出されることはありません。
しかし、多くのアプリがこのコールバックを使用して、次のようにプロパティを解放しています。
これは、IBOutlets をリリースするためのベスト プラクティスでした。
では、最初の質問:
iOS 6 でこれらの既存のアプリはどうなるでしょうか? 彼らは漏れますか?
2 つ目:
IBOutlet プロパティを解放するための新しい推奨方法は何ですか? 解放方法では?
objective-c - iOS6でのviewWillUnloadの非推奨とdidReceiveMemoryWarningへの移行
私は新しい開発者で、最初のアプリをリリースしようとしています。viewDidUnload
以下のAppleのiOS6リリースノートで説明されているように、の非推奨について混乱しています。
iOS 6では、UIViewControllerのviewWillUnloadメソッドとviewDidUnloadメソッドは非推奨になりました。これらのメソッドを使用してデータを解放する場合は、代わりにdidReceiveMemoryWarningメソッドを使用してください。このメソッドを使用して、ビューコントローラのビューが使用されていない場合は、そのビューへの参照を解放することもできます。これを行う前に、ビューがウィンドウにないことをテストする必要があります。
なぜこうなった?この変更によってアプリのパフォーマンスの問題が発生しないようにするには、どのガイドラインに従う必要がありますか?
ありがとう。
properties - XCode4.5の@synthesizeの自動生成
xcode 4.5では、@ synthesizeが自動生成され、変数の割り当てにアンダースコアプレフィックスのベストプラクティスが実装されていることを理解しています(別のスレッドで説明されています)。私はあなたの助けが大いに感謝される2つの関連する質問があります:
xcode 4.5に関するこれらの詳細を説明するドキュメントはありますか?すぐにどこにあるのかわかりません。これをどうやって見つけますか?
また、IBOutletをドラッグアンドドロップすると、通常の'viewDidUnload'実装がxcode4.4にあった場所でも生成されなくなったようです。それを自分で実装する必要がありますか、それとも不要になる何かが起こっているのでしょうか?
ありがとう!Mo
ios - viewDidUnload で機能するものは didReceiveMemoryWarning に移動する必要がありますか?
新しい iOS 6 では非推奨となり、代わりに UIViewController インスタンスとサブクラスのオブジェクトを管理するためviewDidUnload
に使用するように指示されました。内部で行われた方法のように、didReceiveMemoryWarning
内部の UIView の種類に nil を割り当てることも同様に効果的ですか?didReceiveMemoryWarning
viewDidUnload
これらの 2 つの方法は動作が異なるように見えるため、これを尋ねています。必要なUIViewを再インスタンス化するために再度呼び出されることをdidReceiveMemoryWarning
保証していないようです。viewDidLoad
iOS 6 では、手動で UIView の割り当てを解除する必要なく、メモリ管理が行われるのではないかと思います。UIViewController のライフサイクルを理解する上で見逃していることを教えてください。
ios - iOS - viewDidUnload は呼び出されませんが、didReceiveMemoryWarning が呼び出されます
特定のデバイスでのクラッシュの原因を突き止めようとしています。ビュー コントローラーが を受信していることに気付きましたが、受信didReceiveMemoryWarning
していませんviewDidUnload
。そしてAppleによると:
ビュー オブジェクトへの参照を解放するために didReceiveMemoryWarning を使用することはありません。それを使用して、viewDidUnload メソッドでまだ解放していないビュー関連のデータ構造を解放することができます。(ビュー オブジェクト自体は、常に viewDidUnload メソッドで解放する必要があります。)
そう、
A: なぜviewDidUnload
呼び出されないのですか? ビュー オブジェクトが呼び出されない場合、ここでビュー オブジェクトを削除することはできません。
B: でビュー オブジェクトを削除しないとしたらdidReceiveMemoryWarning
、他にどこで削除しますか?
C: ARC を使用していますが、ビュー オブジェクトを削除したり、配列を nil に設定したりする必要はありますか?