iOS запрос многомерного массива и путь индекса возврата - PullRequest
2 голосов
/ 03 мая 2011

У меня есть NSMutableArray, который содержит другие NSMutableArrays (я буду называть их под-массивами).Каждый из этих подмассивов содержит уникальную переменную с именем id.Я хочу вернуть путь индекса подмассива, который содержит определенный идентификатор.Например, если один из подмассивов имеет идентификатор 25, как я могу узнать путь индекса этого подмассива (не путь индекса идентификатора в подмассиве)?Заранее спасибо.Дайте мне знать, если у вас есть какие-либо вопросы.

Приветствия, Эван.

Ответы [ 2 ]

3 голосов
/ 03 мая 2011

В основном вам придется искать вручную во всех подмассивах.Например:

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];
0 голосов
/ 03 мая 2011

Из ссылки на класс NSArray я нашел следующий метод.

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

Так что, если у вас есть массив, содержащий ваш индекс, то передайте его вместе с вашим основным массивом этому методу, и вы получите соответствующий индекс массива, который имеет ваш идентификатор.

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...