Подтвердить что ты не робот

Украсить NSLog NSArray и NSDictionary

Я имею дело с глубоко вложенными NSArray и NSDictionary, и это очень трудоемко, если не сказать больше. [data objectatindex: 0] valueForKey: @ "blah" ] и т.д. и т.д.

Кто-нибудь знает о хорошей категории iOS, чтобы рекурсивно регистрировать структуру, выделить тип и показать значения?

Возможно, вам будет немного, но вы никогда не знаете:)

4b9b3361

Ответ 1

Может быть, так?

for (id key in dictionary) {
    NSLog(@"key: %@, value: %@ \n", key, [dictionary objectForKey:key]);
}

но я не могу придумать какой-либо красивый способ получить результат красивым, кроме копирования, и вставить его в jsonFormatter (например )

РЕДАКТИРОВАТЬ: @У Андрея Стародубцева есть решение для XCode > 5.x ниже:

NSLog( @"%@", dictionaryYouWantToPrint );

Ответ 2

Хм. Простой

NSLog( @"%@", dictionaryYouWantToPrint );

выводит следующий результат для меня:

{
    id = 1;
    matchCount = 0;
    matchPattern = abcdef;
    number = "123456";
    sessionID = 5;
    status = Unknown;
    timerStart = 1367229348;
}

Ответ 3

Возможно, вы можете использовать блок после iOS5, например

[anArray enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) {
    NSLog (@"object->%@",object);
}];

[aDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id object, BOOL *stop){
    NSLog(@"key->%@, value-> %@",key,object);
}];

Ответ 4

Это будет печатать на консоли без NSLog.

Во время отладки, когда ваша точка останова находится ниже словаря, вы можете ввести консоль

NSDictionary * myDict = ...;

po myDict

и вы получите печатный словарь в консоли.

Вы можете даже накладывать объекты на другие типы в консоли:

введите описание изображения здесь