Украсить NSLog NSArray и NSDictionary
Я имею дело с глубоко вложенными NSArray и NSDictionary, и это очень трудоемко, если не сказать больше. [data objectatindex: 0] valueForKey: @ "blah" ] и т.д. и т.д.
Кто-нибудь знает о хорошей категории iOS, чтобы рекурсивно регистрировать структуру, выделить тип и показать значения?
Возможно, вам будет немного, но вы никогда не знаете:)
Ответы
Ответ 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
и вы получите печатный словарь в консоли.
Вы можете даже накладывать объекты на другие типы в консоли:
![введите описание изображения здесь]()