美化NSArray的NSLog&的NSDictionary

时间:2011-08-19 11:51:30

标签: ios nsarray nsdictionary

我正在处理深度嵌套的NSArray和NSDictionary,并且至少可以说它非常耗时。 [data objectatindex:0] valueForKey:@“blah”]等等

有没有人知道一个漂亮的iOS类别,以递归方式记录结构,突出显示类型并显示值?

可能会问多少,但你永远不会知道:)

4 个答案:

答案 0 :(得分:128)

嗯。简单

NSLog( @"%@", dictionaryYouWantToPrint );

输出以下结果:

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

答案 1 :(得分:47)

也许是这样的?

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

但我想不出有什么好的方法可以让输出变得漂亮,除了复制和放大将其粘贴到jsonFormatter(例如)

编辑:@Andrey Starodubtsev拥有XCode解决方案> 5.x以下:

NSLog( @"%@", dictionaryYouWantToPrint );

答案 2 :(得分:1)

也许你可以在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);
}];

答案 3 :(得分:1)

这将在没有NSLog的控制台中打印。

在调试期间,当您的断点位于字典下方时,您可以键入控制台

NSDictionary * myDict = ...;
  

po myDict

你将在控制台中获得印刷字典。

您甚至可以在控制台中将对象转换为其他类型:

enter image description here