iOS查询多维数组和返回索引路径

时间:2011-05-03 13:00:54

标签: iphone ios nsmutablearray

我有一个NSMutableArray,它包含其他NSMutableArrays(我将它们称为子数组)。这些子数组各自包含一个名为id的唯一变量。我想返回包含特定id的子数组的索引路径。例如,如果其中一个子数组的id为25,我怎么能找到该子数组的索引路径(而不是子数组中id的索引路径)?

提前谢谢你。如果您有任何问题,请告诉我。

干杯,埃文。

2 个答案:

答案 0 :(得分:3)

您基本上必须手动搜索所有子阵列。例如:

NSUInteger outerIndex = [outerArray indexOfObjectPassingTest:^(id subarray, NSUInteger outerIdx, BOOL *stopOuter) {
    NSUInteger innerIndex = [subarray indexOfObjectPassingTest:^(id obj, NSUInteger innerIdx, BOOL *stopInner) {
        return [obj isEqual:searchTerm];
    }];
    return innerIndex != NSNotFound;
}];
NSUInteger indexes[] = {outerIndex, innerIndex};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexes length:2];

答案 1 :(得分:0)

NSArray class reference我找到了以下方法。

indexOfObject:
Returns the lowest index whose corresponding array value is equal to a given object.

- (NSUInteger)indexOfObject:(id)anObject
Parameters
anObject
An object.
Return Value
The lowest index whose corresponding array value is equal to anObject. If none of the objects in the array is equal to anObject, returns NSNotFound.

Discussion
Objects are considered equal if isEqual: returns YES

因此,如果您拥有保存索引ID的数组,则将其与主数组一起传递给此方法,您将获得具有您的id的数组的相应索引。