是否可以知道添加对象的数组(或数组)?

时间:2012-07-15 06:17:02

标签: objective-c

以下是一些代码。

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

我想知道someArray的指针作为test1实例的方法。

有这样的方法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

不,你不能“反向查询”你所包含的容器。

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

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