問題タブ [dealloc]

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 に答える
2933 参照

iphone - -(void)deallocでNSUserDefaultsを同期するのは悪い形式ですか?

オブジェクトのinitメソッドでNSUserDefaultsからロードします。オブジェクトのdeallocメソッドでNSUserDefaultsに保存できますか?

まったく同じようなもの:

良い、悪い、いいですか?それが良くないなら、どこが良いでしょう。

編集:

詳細な回答ありがとうございます。それらすべてが理にかなっています。これがユーザーのデフォルトに保存するのに不適切な場所である理由を私が発見したもう1つの理由は、deallocは、オブジェクトの割り当てが適切に解除された場合にのみ呼び出されるためです。私のアプリが強制終了された場合、このコードは実行されません。同様に、アプリがバックグラウンド(iOS 4)にプッシュされた場合、これは実行されません。明示的な[userDefaults synchronize]呼び出しも削除しました。少し緊張しますが、これはアップルに信頼を置いています。:)

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

c++ - Dealing with chars in C++ (without std::string)

I have this code:

The second value will get the addres of value ok? If I delete "value" the secondValue won't be available am I right?

so I should do:

so If I delete "value" no problem.

And finally to dealloc the secondValue I should do:

am I right?

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

iphone - アプリがバックグラウンドになったときにオブジェクトの割り当てを解除するにはどうすればよいですか?

「アプリがバックグラウンドになったときにオブジェクトを正しく解放する方法は?」という質問は 1 つだけです。私はいくつかのアプリに取り組んでいます。すべてがうまく機能します。アプリをバックグラウンドにしてからもう一度起動すると、クラッシュします。すぐにではありません(アプリを閉じたところにスターが付きます)が、たとえばセルの一部を選択したり、テーブルビューをスクロールしたりするだけです。だから私はアプリがすでにリリースされたデータを呼び出すと確信しています。

ここにdeallocの例があります

何かアドバイスはありますか?

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

iphone - CFStringisNaturallyRTL-割り当て解除されたインスタンスに送信されるメッセージ

私はすでに「CFStringisNaturallyRTL」をグーグルで検索しましたが、結果は0です。

これらは私のクラスです:

これで、ボタンタッチで開くビューがあり、2つのテキストボックスと1つのボタンが含まれています。このような。

それはすべて正しく、コンパイルして実行します。

初めてdrawRouteTextboxesをクリックすると、デフォルトのテキストが設定された状態でビューが開きます(「Roma」と「lecce」)。2回目は、ビューを開き、テキストフィールドを編集して、drawRouteを呼び出します。大丈夫です。drawRouteTextboxesを3回呼び出すと、次のランタイムエラーが返されます。

問題がどこにあるのかわかりません...誰かが解決策を知っていますか?このエラーが表示されるのは初めてです。

ありがとう、アルベルト。

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

objective-c - カテゴリで宣言されたプロパティをリリースするObjective-C?

クラスにプロパティといくつかのメソッドを追加する既存のクラスにカテゴリがあります。

実装ファイルでは、オブジェクトの割り当てが解除されたときにこのプロパティを解放したいと考えています。ただし、deallocこのクラスで宣言すると、元のクラスの dealloc がオーバーライドされます。aPropertyオブジェクトの割り当てが解除されたときにこれを解放する適切な方法は何ですか?

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

uiview - UIViewController & UIview dealloc が呼び出されない

ナビゲーション ベースのビュー コントローラーがあり、ビュー コントローラーで上部のナビゲーション バーを非表示にし、カスタム UIView をナビゲーション バーとして使用します。

UIView バーには戻るボタンがあり、Delegate メソッド (プロトコルを宣言しました) を使用して、戻るボタンが押されたときにビュー コントローラーと通信します。

CustomNavigation Bar id デリゲートでデリゲートを使用します。

メインのView Controllerで、ナビゲーションバーを割り当てるときにデリゲートを設定します

ViewControllers の dealloc でこのバーを解放します。

戻るボタンを押すと、デリゲート メソッドを使用して、メインの ViewController で popViewController を呼び出します。

ViewControllerがポップされ、コントロールは前のviewControllerに移動しますが、ViewControllerとUIViewの両方でdeallocが発生しません

私は何を間違っていますか?

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

iphone - 正しい[スーパーdealloc]

dealloc メソッドのステートメントの順序は重要ですか? [super dealloc]メソッドの一番上にある必要はありますか?それは問題ですか?

また、例えばviewDidLoad[super viewDidLoad]メソッドの一番上にあるべきですか?

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

iphone - DeallocのカスタムUIButtonメモリ管理

ここで行われているプロセスを明確にしたいと思っています。

initメソッドが次のようになるUIButtonのサブクラスを作成しました。

ビューコントローラで、これらのボタンの1つを作成し、それをサブビューとして追加しています。

ビューコントローラのdeallocメソッドでは、ボタンの保持カウントをログに記録します。

私の理解では、myButtonは、を使用して呼び出したとしても、実際には保持されませんalloc。これは、サブクラスで(を使用して)自動解放ボタンを作成したためbuttonWithType:です。

で、これは、deallocが呼び出されると、スーパービューがボタンを解放し、その保持カウントが1に減少するdeallocことを意味しますか?ボタンはまだ自動リリースされていませんか?

または、[superdealloc]を呼び出した後にその保持カウントをゼロにする必要がありますか?

乾杯。

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

iphone - iOS SDK-deallocの実装-最初に子ビューをリリースしますか?

私はiPadアプリケーションを完成させています。私にとって、それはdeallocクラスのすべてのメソッドに入力することを意味します。

私のペン先には多くのビューがあり、それらのほとんどにはサブビュー(つまりUIView、s、UILabelsなど)が含まれています。親を解放する前に子ビューを解放する必要がありますか?親ビューが解放された場合、その子ビューも解放されますか?

サンプル:

childViewとは両方ともparentView私のViewControllerのプロパティです。両方とも保持されています。

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

objective-c - Objective-Cオブジェクトでmalloc/freeを使用する

AudioManagerタイプのメンバーを持つクラスがありAudioBufferList *ます。(これはCoreAudioフレームワークで宣言された構造体です)。AudioBufferListではないのでNSObject、保持できません。そのため、割り当て/解放する必要があります(間違っている場合は修正してください)。

私の質問は、それを解放するための「正しい」場所はどこにあるのかということです。dealloc現在、の方法でやっていAudioManagerます。私が正しく理解していれば、メッセージが---releaseのインスタンスに送信されると、このメソッドは自動的に呼び出されます。それは本当ですか?AudioManagerObjective-Cオブジェクトの非オブジェクトメンバーでalloc/freeを使用することに関して他に推奨される方法はありますか?

編集:

Applesのドキュメントから:

サブクラスは、独自のバージョンのdeallocを実装して、オブジェクトによって消費される追加のメモリを解放できるようにする必要があります。たとえば、データ用に動的に割り当てられたストレージや、割り当て解除されたオブジェクトが所有するオブジェクトインスタンス変数などです。クラス固有の割り当て解除を実行した後、サブクラスメソッドは、次のメッセージを介してスーパークラスバージョンのdeallocを組み込む必要があります。

これにより、状況が少し明確になりますが、より多くの洞察が得られます。