問題タブ [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 投票する
2 に答える
320 参照

iphone - メモリの警告を受け取った場合、どこですべてのビューを解放しますか?

すべてのビューとデータを正確に解放する必要があるメモリ警告を受け取った場合はどうなりますか?

でリリースする必要があるかどうか

- (void)didReceiveMemoryWarningまたはで

- (void)viewDidUnload

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

objective-c - アプリがアクティブなときにページがアンロードされないようにする方法

アプリにいくつかのタブがあります。現在、メモリが少なくなるたびにページがアンロードされるという問題に直面しています (特にアプリでカメラを起動した場合)。

これを軽減し、アンロードが起こらないようにする方法はありますか? または、ページのアンロードを許可する代わりに何かを実行できるように、アンロード プロセスをインターセプトする方法はありますか?

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

objective-c - Do I need to call [super viewDidUnload]?

I have seen some Apple examples that do call [super viewDidUnload]; and some that don't. I read an article (a few months ago so I dont recall the url) that said calling [super viewDidUnload]; was unnecessary but it didn't explain beyond that.

Is there a definitive reason why or why not to tell super that the viewDidUnload?
And, (if it should be done) do I call super before setting all my properties to nil, after, or does it matter?

Thanks!

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

ios - スクロール ビューでビュー関数を機能させる方法

次のコードを見てください

今 にアクセスし、bViewControllerを離れるときにアラートを表示したいのですbViewControllerが、 がviewDidUnload機能しません。

- (void)viewWillDisappear:(BOOL)animatedどちらも機能しません。

では、どれが機能しますか?

0 投票する
0 に答える
229 参照

ios - UINavigationController に追加されたときに UIViewController が解放されない

以下は、私が抱えている問題を示すためのコードの一部です。

ビューコントローラーを割り当てて初期化します。init メソッドは標準の Objective C の init であるため、View Controller はまだ何も実行していません。次に、新しく作成したビュー コントローラーでルートを初期化する navigationController を作成します。次に、ナビゲーションにビューコントローラーがあり、必要ないため、ビューコントローラーを解放します。次の行で nav が解放され、View Controller の dealloc/viewDidUnload が呼び出されることが予想されます。代わりに、そうではありません。nav コントローラーに sportsViewController を配置しない場合、sportsViewController が解放された後に dealloc が呼び出されます。私は何を間違っていますか?(ところで、正しく機能する他の同様のコードがあります)

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

c# - MonoTouch - 接続されているコンセントのリストを取得する

私は大規模な iOS アプリケーションに取り組んでおり、いくつかのクリーンアップ/パフォーマンス チューニングを行っている段階にあります。

私がしなければならないことの 1 つは、ViewDidUnloadどこでもオーバーライドして適切なアクションを実行することです。最も一般的なことは、UIViewControllerto内のすべてのアウトレットを設定することnullです。MonoTouch API を使用して、接続されているコンセントのリストを取得する方法はありますUIViewControllerか? これにより、新しいアウトレットを追加しても何もする必要がないため、このプロセスがより堅牢になります。

注: すべてのアウトレットを null に設定しても、参照されているすべてのビューがキャッチされるわけではありませんが、大部分が取得されるはずです。

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

ios - オブザーバーを NSNotificationCenter に追加/NSNotificationCenter から削除するためのベスト プラクティス

に/からオブザーバーを追加および削除するためのベストプラクティスは何NSNotificationCenterですか?

selfオブザーバーとして追加してviewDidLoad削除selfするviewDidUnloadだけで十分かどうか疑問に思っています。または、おそらく私も削除する必要selfdeallocあります。

おそらく、メモリ不足の状態を考慮する必要があります。viewDidLoad追加と削除deallocが問題であることがわかりました:viewDidUnloadメモリ不足のために呼び出されます...viewDidLoadビューが再度表示されたときに呼び出されます...self削除されずにオブザーバーとして2回追加されました(そうでdeallocはなかったので)と呼ばれる)。

:サブクラスselfを参照する基本的な例を考えています。UIViewController

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

iphone - iPhone - メモリ不足の状態に対処する方法

アプリがメモリ不足の警告メッセージを受け取ると、次の 3 つの状況が発生する可能性があります。

  1. アプリが起動されたばかりで、ユーザーが特別なことをしていない
  2. アプリが実行中で、現在のコンテキストがある
  3. アプリは実行中のコンテキストでバックグラウンドにあります

したがって、このメッセージを受け取ったら、メモリを解放する必要があります...しかし、どこで? そしてどうやって ?

という事は承知しています :

  1. initWith..... デフォルトの静的値を設定する必要があります。
  2. viewDidLoad非静的オブジェクトをロードする必要があります
  3. didReceiveMemoryWarningこれらの非静的オブジェクトを解放する必要があります
  4. 何ができるか、何をしなければならないかわかりませんviewDidUnload...

いくつかの保持された値は、どこかで nil に設定する必要があると思います... didReceiveMemoryWarning で?

そして、アクティブなコンテキスト (画面の物の位置、表示されたテキストなど) で何をしなければならないので、viewDidLoad が再度呼び出されると、それらは memoryWarning 呼び出しの前の場所に再び表示されますか?

つまり、2 つのシナリオを想像してください。

シナリオ 1

  1. あなたは何かに取り組んでいます... フィールドにテキストを書きましたが、それを保存せず、別のビューを開き、画面上のビューを移動しました。
  2. アプリをバックグラウンドで送信します。
  3. 次に、memoryWarning がアプリに送信されます。
  4. その後、ユーザーはアプリをフォアグラウンドに送信します。以前のビューと同じように、現在のビューで終了時のように表示する必要がありますが、すべてが解放されている場合、どうすればこれを行うことができますか?

シナリオ 2

  1. あなたは何かに取り組んでいます... フィールドにテキストを書きましたが、それを保存せず、別のビューを開き、画面上のビューを移動しました。
  2. 次に、memoryWarning がアプリに送信されます。
  3. ビューにあるものや、前のビューにあったものを失いたくありません。リリース/リロード機能のために画面がちらつきたくありません。これにどう対処しますか?

これらのメモリ警告が発生した場合、ディスクに書き込んで後で表示する以外に選択肢はありますか?

そして、いつそれらを再度ロードしますか?ロード (viewDidLoad) し、memoryWarning を受け取り、アンロード (viewDidUnload) する viewController がありますが、それに戻ると、viewDidLoad は再度呼び出されませんか? これは viewWillAppear で行う必要がありますか? viewWillAppear がトリガーされるたびに、そこに表示されるはずのものが読み込まれていると考える必要がありますか?

貴重なリンクがあっても、どんな助けも素晴らしいでしょう!

ご協力ありがとうございました。

0 投票する
0 に答える
897 参照

ios - didReceiveMemoryWarning および viewDidUnload の後に viewDidLoad を使用する

meory 警告が発生したときにビューを管理するプロセスを理解しようとしています。この回答でいくつかの良い情報を受け取りましたが、まだ質問があります。

ビューコントローラーVC2(そのサブビューはビュープロパティです)によって管理されるサブビューを含むビューコントローラーVC1があるとします。最初に、VC2 ビューを別の VC1 ビューに入れたい場合は、次のようにします。

しばらくして、VC2 でメモリ警告が受信されます。したがって、VC2 の didReceiveMemoryWarning が呼び出され、続いて VC2 の viewDidUnload が呼び出されます。

これが私の理解の終わりです(私がすでに言ったことが正しいなら!)

私が魔法のように起こると期待しているのは、VC2 のビューとそのリソースを解放できることです (たとえば、タブ バー コントローラーが参照しているが、現在は表示されていない 1 つのビューである可能性があります)。 VC2 の viewDidLoad メソッドですべて再作成できます。VC2の見解が当面見えないとすれば、解放されるはずだ。

どのように、正確にリリースされますか?didReceiveMemoryWarning は VC2 で実行されます。VC2 は独自のビューをリリースしますか? そうでない場合、何が起こると考えられますか。

2 番目の質問です。VC2 のビューが解放された場合、そのビューが再び必要になるとします (誰かがタブ バーの対応するタブを選択するなど)。私の理解では、VC2 のビュー プロパティが参照されると、VC2 loadView が呼び出されます。最初は、VC1 がプロパティ参照を使用してサブビューとして追加したときに参照されました。タブバーコントローラーは、タブバーコントローラーのviewControllers配列にあるビューコントローラーVC2を介して参照によって呼び出すことができます。したがって、タブバーコントローラーはビュープロパティを参照し、VC2 loadView が呼び出されると思います。

2 番目の質問について説明しましたが、同時に回答した可能性もあります。私がこれを正しく理解しているかどうか誰かが確認できますか?

また、(最初の質問のように) VC2 ビューをどこでどのようにリリースする必要があるのか​​、まだ明確ではありません。

メモリ警告に応答してビューとビュー階層を解放するこのプロセス全体を説明し、解放されたビューが必要なときにどのように再構成されるかを説明するチュートリアルはありますか? それは、このプロセスを理解するのに本当に役立ちます。

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

ios - viewDidUnloadのメモリ管理-配列とオブジェクトの両方を内部で無効にする必要がありますか?

インターネットからニュースを読み込むためのテーブルビューがあります。私とviewDidUnloadのすべてのプロパティをnilしようとしています。

viewDidUnloadでアプリがクラッシュするたび。self.iconDownLoader = nil;とコメントすると、問題ありません。それで、なぜこれが起こるのか誰かに教えてもらえますか?ありがとうございます。

--------------------- NewsViewController.m --------------------------

----------------------- IconDownLoader.m -------------------