Рекурсивный обход объекта в Objective-C - PullRequest
1 голос
/ 07 февраля 2012

Я преобразую различные объекты JSON в структурированные объекты и хочу перебрать все узлы для иерархической обработки каждого из них. Каркас JSON поддерживает преобразование в NSDictionary, который, как мне показалось, был неструктурированным. Я хочу рекурсивно перебирать каждый элемент и обращать внимание на структуру. Как это можно сделать с помощью словаря или общего NSOBject?

Пример:

- (void) processParsedObject:(NSDictionary *)obj
{
    if (atTheEndOfTheTail) {
        NSLog(@"Object description: %@\n\n", obj.description);

    }
    for (id object in obj) {
        [self processParsedObject:object];
    }
}

Обновление:

Я задал вопрос более четко здесь (с ответом):

Рекурсивный обход NSDictionary неизвестной структуры

1 Ответ

2 голосов
/ 07 февраля 2012

Вы можете перечислить все ключи в NSDictionary, используя:

NSEnumerator* keyEnum = [myDictionary keyEnumerator];
NSObject* nextKey;
while ((nextKey = [keyEnum nextObject]) != nil)
{
    NSObject* nextValue = [myDictionary objectForKey:nextKey];
    //... do something with the object and/or key ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...