0

以下は、たとえばいくつかのコードです。

    NSArray *test1 = [[NSArray alloc] initWithObjects:@"TEST", nil];
    [someArray addObject:test1];
:
:
too many code lines.
:
:
At some place
   NSArray *addingArray = [test1 whoisAddingOrContainingMe(?)];

test1インスタンスのメソッドとしてsomeArrayのポインタを知りたい。

このような方法はありますか?

4

2 に答える 2

0

-containsObject:NSArrayのメソッドが必要だと思います。

于 2012-07-15T06:27:08.373 に答える
0

いいえ、含まれているコンテナを「逆引き参照」することはできません。

概念的には、「配列」、他のコンテナ、またはコンテナとは見なされない他のオブジェクトに自分自身への参照があることに違いはないため、設計の観点からはこれはやや困難です。したがって、追加の「所有者」パラメータを渡すことによってすべての「保持」を記録する必要があります。保持と解放は非常に異なる場所で実行できるため、最終的な「解放」が行われるように「所有者」ポインタを渡す必要もあります。 「適切な保持を参照できます。または、簡単に言えば、それは大きな混乱になるでしょう:-)

前に提案したように、実際にどの配列に含めることができるかがわかっていて、それがアプリケーションにとってはるかに簡単なはずである場合は、それらを確認できます。または、オブジェクトにリストを追加して、オブジェクトが追加された場所を記録することもできます。おそらく、「addTo:」や「removeFrom:」などのメソッドを使用します。

于 2012-07-15T11:16:01.677 に答える