NSDictionary *dictionary = @{@"A" : @"alfa", @"B" : @"bravo", @"C" : @"charlie", @"D" : @"delta", @"E" : @"echo", @"F" : @"foxtrot"}; NSLog(@"%@", dictionary.description);
在控制台上打印出以下内容:
{ A = alfa; B = bravo; C = charlie; D = delta; E = echo; F = foxtrot; }
let dictionary: [String : String] = ["A" : "alfa", "B" : "bravo", "C" : "charlie", "D" : "delta", "E" : "echo", "F" : "foxtrot"]; print(dictionary)
["B": "bravo", "A": "alfa", "F": "foxtrot", "C": "charlie", "D": "delta", "E": "echo"]
在Swift中,有没有一种方法可以将其带到漂亮的打印字典中,其中每个键值对都占一行?
例如,如果目标是检查字典,则可以使用dump。dump是Swift标准库的一部分。
dump
用法:
let dictionary: [String : String] = ["A" : "alfa", "B" : "bravo", "C" : "charlie", "D" : "delta", "E" : "echo", "F" : "foxtrot"] dump(dictionary)
输出:
dump 通过反射(镜像)打印对象的内容。
数组的详细视图:
let names = ["Joe", "Jane", "Jim", "Joyce"] dump(names)
印刷品:
▿4个元素 -[0]:乔 -[1]:简 -[2]:吉姆 -[3]:乔伊斯
对于字典:
let attributes = ["foo": 10, "bar": 33, "baz": 42] dump(attributes)
▿3个键/值对 ▿[0]:(2个元素) -. 0 :bar -.1: 33▿[1]:(2个元素) -.0:baz -.1: 42▿[2]:( 2个元素) -.0:foo -.1:10
dump声明为dump(_:name:indent:maxDepth:maxItems:)。
dump(_:name:indent:maxDepth:maxItems:)
第一个参数没有标签。
还有其他可用参数,例如name为要检查的对象设置标签:
name
dump(attributes, name: "mirroring")
▿镜像:3个键/值对 ▿[0] :( 2个元素) -. 0 :bar -.1: 33▿[1] :( 2个元素) -.0:baz -.1: 42▿[2] :(2个元素) -.0:foo -.1:10
您也可以选择仅使用来打印一定数量的项目maxItems:,使用来解析对象到一定深度maxDepth:,并使用来更改打印对象的缩进indent:。
maxItems:
maxDepth:
indent: