問題タブ [reference-counting]
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.
objective-c - 参照カウントは、[obj release]の後も、割り当てを解除する必要があるときに1のままです。
オブジェクトを作成してその保持カウントを確認すると、期待どおりに1が得られます。オブジェクトを解放して、保持カウントを再度確認すると、まだ1です。オブジェクトの割り当てを解除して、保持カウントを0にする必要がありますか?
最初に設定した場合、保持カウントに0が表示されます。何故ですか?str
nil
php - 文字列は PHP5 で参照されますか?
PHP5で、引数として渡されたとき、または変数に割り当てられたときに、文字列が参照またはコピーされますか?
string - 複数の文字列変数が実際に同じデータを参照できますか?
インターネットの情報によると、次の 2 つの変数がメモリ内の同じ場所を指していることがわかりました。
実際にそれが真であることを示すコード例を誰か提案できますか?
xcode - 初期化中に保存された値は決して読み取られません
データを変更して保存できるように、ゲームを作成しようとしています。コメント行にある 2 つのエラーが表示されます。これらのエラーが発生するのはなぜですか。ゲームを割り当てたので、正しくリリースする必要があります。これが私のゲームを保存するための私のコードです
初期化中に 'newGame' に保存された値が読み取られないというエラー 1 が表示されます。
2 番目のエラーは、この時点で呼び出し元が所有していないオブジェクトの参照カウントのデクリメントが正しくないことを示しています。
これは何を意味するのでしょうか?そして、私に言わないでください。メモリ管理について読んで、リンクを教えてください。問題を解決する方法を教えてください。
objective-c - -retainCount の呼び出しは有害と見なされる
retainCount
または、夏休みに使わなかった理由
この投稿は、SO の周りに浮かんでいる関連情報を統合するために、その悪名高いメソッドの理由と理由についての詳細な記事を募集することを目的としていretainCount
ます。*
基本: を使用しない公式の理由は何
retainCount
ですか? それが役立つかもしれない状況はまったくありますか?代わりに何をすべきですか?**自由に編集してください。歴史的/説明的:使用を意図していないのに、Apple が
NSObject
プロトコルでこのメソッドを提供するのはなぜですか?retainCount
Apple のコードは何らかの目的で に依存していますか? もしそうなら、なぜどこかに隠されていませんか?理解を深めるために: オブジェクトの保持カウントがユーザー コードから想定されるものと異なる理由は何ですか? このような違いを引き起こすフレームワーク コードで使用される可能性のある標準的な手順の例を挙げていただけますか? 保持カウントが新しいユーザーが期待するものと常に異なる既知のケースはありますか?
他に言及する価値があると思われるものはあります
retainCount
か?
* Objective-C と Cocoa を初めて使用するコーダーは、参照カウント スキームに取り組むか、少なくとも誤解することがよくあります。チュートリアルの説明では、(これらの説明によると) 、 、 などを呼び出すと 1 ずつ増加し、呼び出すと 1 ずつ減少する保持カウントについて言及しているretain
場合alloc
がcopy
ありますrelease
(将来のある時点で を呼び出すとautorelease
)。
新進の Cocoa ハッカーであるクリスは、オブジェクトの保持カウントをチェックすることがメモリの問題を解決するのに役立つという考えを非常に簡単に得ることができましたretainCount
。クリスはretainCount
いくつかのオブジェクトを呼び出しましたが、これは高すぎて、あれは低すぎて、一体何が起こっているのでしょうか?! それで、Kris は SO に投稿します。そして、<bold>、<large> の文字の群れが降りてきて、「そんなことはやめてください! 結果に頼ることはできません.」と言っています。
これが FAQ に変わることを願っています。それは、新しいココア ヘッズがretainCount
.
** 私はこれをあまり広くしたくありませんが、経験からの具体的なヒントや、保持とリリースのペアリングの検証/デバッグに関するドキュメントがここで適切かもしれません.
***ダミーコードで; 明らかに、一般大衆は Apple の実際のコードにアクセスできません。
objective-c - プロパティの初期化、ドット表記
initメソッドで保持プロパティをnilに初期化するためにドット表記を使用するのは悪い考えですか?
このような通常のプロパティでは:
私が設定したinitメソッドで言いますself.foo = nil
。合成されたメソッドは、最初にリリースまたは自動リリースしますfoo
(基になる実装が正確にわからない)。foo
最初のセッターまたはゲッターの呼び出しの前にゼロであることが保証されていますか?foo = nil
または、ドット表記なしで明示的に設定しない限り、ランダムなガベージを指しますか?
python - ipython と参照カウント
ipython
私が期待していないときに、オブジェクトへの参照を保持しているように見えます。
次のスクリプトを考えてみましょう ( grc.py
):
で実行するとipython
:
どうしたの?余分な 2 つの参照はどこから来たのですか?
c++ - STLPort の文字列実装は参照カウントを使用していますか?
STLPort は参照カウント メカニズムを介して文字列を実装していますか?
objective-c - Xcode 静的アナライザーと copyWithZone
Xcode 4 の静的アナライザーは、そうでないように思われる場合に、このメソッドに過度に解放された戻り値があるというフラグを立てます。
return キーワードからそれに続く式を指す矢印と、その式からアナライザーの警告を指す矢印があります。静的分析は次のとおりです。
- メソッドは、保持カウントが +1 の Objective-C オブジェクトを返します
- 送信されたオブジェクト - autorelease メッセージ
- 所有参照として呼び出し元に返されるオブジェクト (呼び出し元に転送される単一の保持カウント)
- +0 (非所有) 保持カウントで呼び出し元に返されたオブジェクト
- +1 (所有) 保持カウントが予期される呼び出し元に返される +0 保持カウントを持つオブジェクト
静的アナライザーが間違っていますか、それともこのコードに何か問題がありますか?
リクエストにより、-initWithURL:postString:
メソッド:
プロジェクトをクリーニングして再構築した後でも、この警告が表示され続けます。
更新: Xcode 4.2 にアップグレードした後、Xcode 静的アナライザーはこれを問題としてフラグ付けしなくなりました。
programming-languages - ポインタ演算を使用する言語での参照カウントGC
ポインタ演算が可能な言語で参照カウントベースのGCを実装できるかどうか疑問に思いました。たとえば(これは疑似Cです)、
このシナリオでコンパイラがメモリを正しく管理することは可能でしょうか?