問題タブ [narc]
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.
iphone - Objective-Cでメソッドの最後にメソッドのパラメーターをリリースする必要がありますか?
メソッドにパラメーターを渡した場合、メソッドの最後でパラメーターを解放する必要がありますか?
objective-c - Objective C のメモリ リーク
自分用に 1 つの Cocoa アプリケーションを作成していますが、問題が見つかりました。2 つの NSTextFields があり、nextKeyViews として互いに接続されています。メモリ リーク検出ツールを使用してこのアプリを実行し、これら 2 つのテキスト ボックスをしばらくタブで移動し、テキストを入力すると、メモリ リークが発生し始めます。AppKit ライブラリが責任を負い、リークされたオブジェクトは NSCFStrings であり、責任のあるフレームは[NSEvent charactersIgnoringModifiers]
and [NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
. これは非常に簡潔で不完全な説明であることは承知していますが、何が問題なのか考えられる人はいますか?
また、私は GC を使用していないのでrelease
、コントローラーのインスタンス変数を使用しますdealloc
。アウトレットはどうですか?IBOutlet
はInterface Builderのマークにすぎず、実際には何も意味しないので、私もそれらを使用する必要がありrelease
ますか?
objective-c - このステートメントで NSURLConnection インスタンスを解放するのはなぜですか?
これは本で読みました。
このステートメントでは、その時点で「接続」インスタンスを解放するのは正しいですか? それを解放した後、これは参照カウントが 0 であるため、この NSURLConnection インスタンスが破棄されることを意味します。このインスタンスを解放した後、この接続操作をどのように機能させるのでしょうか? ありがとう。
次のコールバック メソッドのいずれかでリリースする必要があると思いましたよね?
connectionDidFinishLoading:
接続:didFailWithError:
objective-c - NARCを超えて:いつ保持するか、いつ割り当てるか、いつコピーするか
私はついに、オブジェクトを解放する必要があるかどうか、そして些細なアプリケーションで保持カウントをできるだけ低く保つ方法を理解しました(オブジェクトがすでに呼び出された追加の「保持」で戻ってくるかどうかを知ることによって)。したがって、NARCルールはその点でかなりうまく機能しています。
一方、retain
(通常は保持プロパティを使用して)assign
インスタンス変数を使用するかどうかに頭を悩ませることはできません。そこに経験則はありますか?私は2つしか知りません:
- クラス内(たとえば、init)でインスタンスを作成した場合は、インスタンスを保持して、で解放する必要があり
dealloc
ます。 - 代表者は割り当てられますが、保持されません
しかし、私が理解していないのは、別のインスタンスから渡したものを保持する必要があるかどうかです。保持カウントがゼロになり、バッグを保持したままにする(または多くの余分なバッグとメモリを保持したままにする)リスクがあることは知っていますが、これが起こらないようにアプリケーションをどのように整理する必要がありますか?
私はいくつかの関連する質問を見ましたが、一般的なものは何もありません。
私がここにいる間:に追加されたもの、UIWindow
またはUIView
私が個人的に保持していないものはどうですか?それらのスーパービューがすべてのスーパービューから削除された場合、「自然に」保持されたインスタンスの割り当てが解除されますか?