ウィキペディアは「コンピュータプログラミングでは、弱参照とはガベージコレクタによるコレクションから参照オブジェクトを保護しない参照です。どのように2つのタイプの参照はコードのように見えるのですか?弱参照は自動再生されたメッセージによる参照ですか?weak-strongリファレンスはobjective-cのようにどのように見えますか?
答えて
以下の回答は、ガーベジコレクションがない場合(iOSなど)です。 ガベージコレクションの場合、実際に弱い参照を作成するキーワード(__weak
)があります。
「弱い」参照は、保持していない参照です。
サイクルを分割するには、これらの弱い参照を使用する必要があります。よくあるケースは、その親オブジェクトへの参照を必要とする子オブジェクトです。このシナリオでは、親オブジェクトは子オブジェクトへの参照を保持し、子オブジェクトはその親オブジェクトへの参照を保持しますが、保持しません。これは、親オブジェクトが行う限り、子オブジェクトは存在する必要があるだけなので、機能します。
弱い参照は、自動再生されたメッセージによる参照ですか。
本当に、それは、コールスタックが巻き戻されたとき
オートリリースのものは、(例えば、すべてのイベントループの最後に)消える;-)「非常に弱い参照」になりますされていません。一時的でないものが必要な場合は、参照を保持する必要があります(上記の場合と同様に、他の部分が十分に保持していることを確認してください)。
弱参照は、強い参照がオブジェクトをメモリ内にとどまらせている間にオブジェクトをメモリ内に残すように強くないほど強い参照です。
任意の変数への弱い参照を作成した場合は、そのためにnilが返されることがあります。
UITableViewDelegate
,UIScrollViewDelegate
などが弱い参照例である。強い参照の
例:ここでは
MyClass *obj1 = [[Myclass alloc] init];
Myclass *obj2 = obj1;
obj2
あなたは、メモリからobj1
も削除されますがobj2
を削除する場合obj1
への強い参照を意味しています。
obj2は本当にobj1への強い参照を持っていますか? 「弱い参照は、オブジェクトをメモリ内に残すよう強くない参照です」とあなたの例を見て、obj1にリリースメッセージを送信してもobj1がメモリに保持されるのを防ぐことはできません。 Myclass * obj2 = obj1; " obj1の保持カウントは増加しません。 IMHO弱い参照です。 – Centurion
あなたは私に強い参照を教えてくださいできますか? – Hitesh
私は、2番目のステートメント "[obj2保持];"それを強力な参照にします。はい、obj2はobj1へのポインタにすぎず、2つの保持カウントはメモリ内に割り当てられた同じオブジェクトに属し、IMHOはどこか1か所に格納されます。しかし、すべての+1保持カウントには所有者(少なくとも理論的)があり、私にとっては、その所有者がターゲット上に明示的(保持)または暗黙的(alloc)保持メッセージを送信するために使用されたvar/ivar /オブジェクト。 – Centurion
- 1. このswigコードはどのようにヒスイのように見えますか?
- 2. フラグメントをどのように見えるようにするか?
- 3. Xcodeのビューコントローラのコードビューはどのように見えますか?
- 4. Umbracoではコンテンツアドレスはどのように見えますか?
- 5. 私のページはどのように見えますか?
- 6. CGContextRefの座標系はどのように見えますか?
- 7. ジャスミン標準のディレクトリツリーはどのように見えますか?
- 8. 私のProcfileはどのように見えますか?
- 9. サービスアカウントのjsonファイルはどのように見えますか?
- 10. タイムラインのテンプレートはどのように見えますか?
- 11. ocamlのcompare関数はどのように見えますか?
- 12. 私の剣道データソーススキーマはどのように見えますか?
- 13. ネットワークのマシンコードはどのように見えますか?
- 14. Rubyの実行スタックはどのように見えますか?
- 15. WebRTCピアネゴシエーションのワークフローはどのように見えますか?
- 16. オブジェクトはどのように見えますか?
- 17. GUIソースコードはどのように見えますか?
- 18. const char **はどのように見えますか?
- 19. ボックスフィルタはどのように見えますか(SURF)(DoB)
- 20. 特別なリリースプロセスはどのように見えますか?
- 21. ハートビートメッセージはどのように見えますか?
- 22. Genieではどのようにスイッチインターフェイスが見えますか?
- 23. オブジェクト図はどのように見えますか?
- 24. HTML電子メールはどのように見えますか?
- 25. どのように変数のリファレンスをjavascriptで与えますか?
- 26. レイアウトXMLはどのように見えるでしょうか?
- 27. UITextView - IBのように見えるようにするには?
- 28. 画像をラジオボタンのように見えるようにするにはどうすればよいですか?
- 29. UIPickerViewをイメージのように見えるようにするにはどうすればよいですか?
- 30. uitextfieldが洞窟のように見えるようにするにはどうすればよいですか?
私は主にiOS SDKを心配しています。 iOS 4に関しては、すべての「タイプの割り当て」プロパティを実行し、明示的な保持メッセージを持たない別のobjポインタへの他の単純な割り当ては、弱い参照とみなすべきですか? – Centurion
はい。しかし、 "alloc"のようなメソッドには暗黙の "retain"が含まれていることに注意してください。 – Thilo
@Thilloプロパティを使用している場合、 'weak'は' assign'と同じですか? –