問題タブ [deinit]

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 投票する
0 に答える
298 参照

ios - Swift の動作における deinit

に次のコードを書きましたSwift playground

コンソールに次のように表示されます。

私の質問は、以下のようであってはなりませんか?

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

swift - Swiftのクラス定義内でdeinitメソッドを呼び出す方法

このクラスの変数が特定の値に増加したときに、それが属するインスタンスを破棄できるメソッドを定義したいと考えています。私は次のようなことをしようとしました:

しかし、「初期化解除子には '{' を期待してください」というエラー メッセージが表示されます。

とにかくクラス内で自己破壊することはありますか?

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

swift - UIButton deinit が呼び出されていない

カスタム UIButton があり、それを押した後に削除したいと考えています。しかし、どういうわけか私がそうしようとすると deinit は呼び出されません。空のプロジェクトでこれを試しました:

で直接削除するとviewDidLoad()deinit が呼び出されますが、上記のコードを使用しても何も表示されません。どうすれば deinit を呼び出すことができますか? 割り当てが解除されていないということですか、それとも deinit が単に呼び出されていないということですか?

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

ios - Swift を使用したメモリ管理の問題

メモリ割り当ての問題が発生しています。アプリを実行して特定のページにアクセスすると、そのページにアクセスするたびにメモリ カウントが 30 MB ずつ増加します。

IBOutlets を Weak として追加し、変数を ? として宣言しました。(つまり、オプション)、メモリはオブジェクトの割り当てを解除しdeinit()ておらず、ページをアンロードしているときに呼び出されません。

以下の私のコード
———————————</p>

宣言

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

ios - deinit は、View Controller が開いたときにのみ呼び出されます

これは、メモリ リークの問題に関連しています。performSegueWithIdentifier を呼び出して表示し、self.dismissViewController を呼び出して閉じるビュー コントローラーがあります。このView Controller内にdeinit関数がありますが、dismissViewControllerが呼び出されたときに呼び出されず、View Controllerが表示されたときにのみ呼び出されます。この異常な動作が見られる理由を誰か説明できますか? ありがとうございました!

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

swift - deinit を迅速に有効にする方法

私は車のクラスを持っています。車が廃品置き場に行くとしましょう。この車はもはや総人口には数えられません。私は deinit 関数を持っていますが、車の母集団から車を体系的に削除するにはどうすればよいですか? つまり、deinit を有効にするにはどうすればよいでしょうか。

クラス変数isJunkがありますが、それを使用してこれを機能させる方法がわかりません。

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

ios - アンワインド デリゲートは「中間」ビューを定義しません

次のナビゲーション パターンを持つナビゲーション コントローラー (NC) と 3 つのビュー コントローラー (A、B、C) があります。

A から C に移動して「戻る」と、B と C の両方の deinit メソッドが呼び出されます。

Unwind Segueを使用して C から A に移動すると、B deinit が呼び出されません。

理由は不明です - アプリに別の同様のシーケンスがあり、「戻る」または「巻き戻す」操作に関係なく deinits が呼び出されます。

アンワインド操作後に B が「生き続ける」原因となるものは何ですか?