問題タブ [strong-references]

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

iphone - Objective-cでは、弱い参照と強い参照はどのように見えますか?

ウィキペディアは、「コンピュータープログラミングでは、弱参照は、参照されたオブジェクトをガベージコレクターによる収集から保護しない参照です」と述べています。これらの2つのタイプの参照は、コードではどのように見えますか?弱参照は、自動解放されたメッセージによって作成された参照ですか?

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

c# - GCによって収集されているオブジェクトをフックすることは可能ですか?

WeakReferenceターゲットの強い参照があるとします。ターゲットオブジェクト自体がGCによって収集されているときに通知を受け取りたいのですが。出来ますか?

編集:ファイナライザー/デストラクタにコードを追加することは、ここではオプションではありません。クラスコードに依存しないものが必要です。

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

ios - IBOutlet およびその他の弱いまたは強い

strongプロジェクトを ARC に切り替えましたが、IBOutlets を使用する必要があるのかweak​​、IBOutletsを使用する必要があるのか​​ わかりません。Xcode はこれを行います: インターフェイス ビルダーで、UILabelたとえば を作成し、それをアシスタント エディターで に接続するとViewController、次のように作成されます。

代わりに、 RayWenderlich strongWeb サイトで次のようなチュートリアルを読みました。

しかし、これら 2 つの特定のプロパティについては、別の計画があります。の代わりに strong、 として宣言しますweak

Weakは、すべてのアウトレットプロパティに推奨される関係です。これらのビュー オブジェクトは既にビュー コントローラーのビュー階層の一部であり、他の場所に保持する必要はありません。アウトレットを宣言することの大きな利点はweak、viewDidUnload メソッドを記述する時間を節約できることです。

現在、viewDidUnload次のようになっています。

次のように簡略化できます。

したがってweak、 の代わりに を使用し、strongでセットを nil に削除します。videDidUnload代わりに、Xcode で を使用しstrong、 で を使用しself... = nilますviewDidUnload

私の質問は次のとおりです。いつstrong、いつ使用する必要がありweakますか? iOS 4 の展開ターゲットにも使用したいので、いつ使用する必要がありunsafe_unretainますか? strongを使用する場合、weakおよびunsafe_unretainARCを使用する場合、誰でも簡単なチュートリアルで私をよく説明するのを手伝ってくれますか?

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

objective-c - ビューは強力な参照を保持していますか?

簡単な質問: forViewControllerは自動的にラベルへの強い参照を保持しますか? また、プログラムで を作成し、プログラムで画面に配置すると、それへの強い参照も自動的に保持されますか?IBOutletUILabelViewController's viewUIPopoverController ivarViewControllerUIPopoverController ivarViewController's view

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

ios - ARCを有効にして強力な参照オブジェクトをnilに設定しますか?

ARCオプションを有効にしたiPhoneアプリを開発しています。ファイル所有者アイコンから.xib要素に接続されている.hファイルにIBOutletsを作成しています。

.mファイルで、私はやっています

btメソッドで明示的にnilに設定する必要がありviewDidUnloadますか?つまり?self.bt = nil;_viewDidUnload

deallocまた、 ARCオプションを有効にしてメソッドを作成する必要がありますか?ARCを有効にして、IBOutlets要素を強参照と弱参照としていつ作成する必要がありますか?

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

ios - SplitView に 2 つのビューを設定して相互参照を保持するのは悪いことですか?

私は現在、splitViewController のビューが互いに通信しなければならない RSS プログラムを作成しています。どちらも現在、以下で説明するように App Delegate で宣言されている互いのプロパティ インスタンスを保持しています。これが悪いプログラミング手法であるかどうかを知りたいのですが、そうでない場合、それを回避するにはどうすればよいですか?

/ ---------------------------------------------- /

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

objective-c - self をメソッドに渡す方法 (または強い参照サイクルを防ぐ方法)

自分自身を保持するブロックを使用する際に、強い参照循環を防ぐ方法を現在考えています。通常の方法は、自己への弱い参照を使用することです。

しかし、methodB が次のようになったらどうなるでしょうか。

これは依然として強い参照サイクルを引き起こしますか? それとも、methodB は methodA から self への弱い参照を self への参照として受け取りますか? (つまり、methodB の self への参照は、methodA からの弱参照への単なる強参照ですか?)

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

ios - Objective-C: 弱い属性が期待どおりに機能しない

重複の可能性:
弱い NSString プロパティが iOS でリリースされないのはなぜですか?

私は Objective C の初心者で、自分では答えられない質問がいくつかあります。__weak 変数をテストするためのコード ブロックがあります (もちろん、ARC を使用しています)。

weakString は弱い変数であるため、上記のコードの出力は期待どおりです。

しかし、コードを次のように変更すると、次のようになります。

出力は私が期待したものとはまったく異なります:

後者の NSLog の出力は、"John" ではなく (nil) である必要があります。多くのドキュメントを検索しようとしましたが、この場合の答えが見つかりませんでした。誰かが合理的な説明をすることができますか? 前もって感謝します。

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

objective-c - iOS の __weak 属性と __strong 属性の違いは何ですか?

1 つのオープンソース プロジェクトにコードがあります。

selfあるクラスをいつ強弱に設定する必要があるか知りたいですか?

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

ios - iOSインターフェイス要素を使用した強力な修飾子と弱い修飾子

私のプロジェクトでは、Interface Builderを使用していませんが、説明の仕方がわからないことに気づきました。まだ。だから、要点まで。IBを使用していて、コントローラーでUILabelやUIButtonなどのユーザーインターフェイスの要素を定義している場合は、この醜いプレフィックスIBOutletと「weak」修飾子を使用します。これは音楽のように機能します。しかし、IBを使用せず、コードからユーザーインターフェイス全体を定義することにした場合、それは機能しません。

UILabelをコントローラーに追加したいとします(IBを使用)。私はこのi*.hファイルのようなものを持っています:

そして、*。mファイルでこれ以上何もする必要はありません。しかし、*。xibファイルを削除して、たとえば次のようなinitメソッドの1つでUILabelを設定しようとすると、次のようになります。

*.hファイルを次のように変更するまで機能しません。

これで、weakとstrongの違いはわかりましたが、IBを使用するときにUI要素にweakを使用できる理由がわかりません。何かがこれらの要素への強力なポインタを維持する必要がありますよね?でもなに?2番目のケースではコントローラーですが、最初のケースでどのように動作するかわかりません。