3

mutable arrayのグループへの参照を保持したいと思いUIViewsます。NSMapTable1つの詳細を除いて、このニーズに最適です...NSMapTable保持するすべての値のキーが必要です。

のようなものはありNSMapArrayますか?そうでない場合は、保存するすべての値に対して使い捨ての一意キーを生成する必要がありますか?NSUUIDキー名の生成に使用する必要がありますか?

編集:私が本当に弱い、自己ゼロ化の参照について話していることに注意してください。CFArrayとNSValueソリューションは、参照されたオブジェクトの割り当てが解除されたときにそれ自体がゼロにならない参照を格納します...それらはジャンクポインタとして終了します。

4

3 に答える 3

1

NSHashTableiOS 6で試すことができます。これはNSSet、弱い参照をサポートしているようなものです(NSPointerArray見た目も良いですが、ドキュメントにはARCでの弱い参照はサポートされていないと書かれています)。

NSPointerArray 編集:一部の人々は、ドキュメントの内容に反して、ARCの下で弱参照をゼロにすることを考えているようです。OS X 10.8 Foundationのリリースノートにはそのように書かれていますが、クラスのドキュメントには反対のことが書かれています(iOSのリリースノートには書かれていません)。結局のところ、それが彼らが+ weakObjectsPointerArrayコンストラクターを追加した理由であり、 NSPointerFunctionsWeakMemoryOSX10.8とiOS6.0のオプション...あなたは試してみるべきです...

于 2013-03-26T09:17:05.720 に答える
0

弱参照を配列に格納することが重要だとおっしゃいました。これは、CoreFoundationアレイを使用して可能です。ここで答えが見つかります:デリゲート用の非保持配列

于 2013-03-26T06:50:21.793 に答える
0

あなたが言うことは一種の矛盾です:一方で、あなたはそれらが弱い参照をゼロにすることを望みます、その場合あなたの配列はnilそれらが割り当て解除された後に要素で満たされるでしょう。一方NSMapTable、弱参照の割り当てが解除された後に要素を削除する可能性のある、のようにしたいとおっしゃいました。どっち?

nil弱参照を真にゼロにする(配列に要素を残す)場合、1つの良い解決策はstd::vector<id __weak>、要素が弱参照をゼロにするC++ベクトルを使用することです。ARCがすべての詳細を処理します。

于 2013-05-06T07:39:45.350 に答える