0

Follow is some code for example.

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

I want to know a pointer of someArray as method of test1 instance.

Is there a method like this?

4

2 回答 2

0

不,您不能“反向查找”您所在的容器。

从设计的角度来看,这会有些困难,因为从概念上讲,在“数组”、任何其他容器或任何其他不被视为容器的对象中引用自己没有区别。因此,您必须通过传递一个额外的“所有者”参数来记录每个“保留”,并且由于保留和释放可以在截然不同的地方完成,您还需要传递“所有者”指针,以便最终的“释放” " 可以指适当的保留。或者,简而言之:这将是一个巨大的混乱:-)

如前所述,如果您知道哪些数组实际上可以包含您——这对您的应用程序来说应该更容易——您可以检查它们。或者,您可以向对象添加一个列表以记录它们被添加的位置,可能通过“addTo:”和“removeFrom:”等方法。

于 2012-07-15T11:16:01.677 回答
0

我认为你想要 NSArray 的-containsObject:方法。

于 2012-07-15T06:27:08.373 回答