2015-10-04 89 views
3

xcode 7中的打印描述給出的內存地址與下面類似。嘗試了所有的選擇,但得到這樣的輸出。請讓我知道如何打印字典的確切值。XCode 7打印鍵和詞典的值

▿ 3 elements 
    ▿ [0] : 2 elements 
    - .0 : Output 
    ▿ .1 : 3 elements 
     ▿ [0] : 2 elements 
     - .0 : type 
     - .1 : Output2 { ... } 
     ▿ [1] : 2 elements 
     - .0 : version 
     - .1 : 1.0 
     ▿ [2] : 2 elements 
     - .0 : content 
     ▿ .1 : 2 elements 

不知道爲什麼蘋果是100%的控制檯窗口集中..還有就是在Xcode 5變爲6,6至6.2,6.2至6.4,現在6.4〜7 ..我認爲蘋果應該着眼於提高質量而不是控制檯)

回答

2

我創造了這個測試詞典:

let dict:Dictionary = ["key1": "value1", "key2": 42, "keyForColor": UIColor.redColor()] 

然後我用po dict並獲得您所描述的結果:

po dict 
▿ 3 elements 
    ▿ [0] : 2 elements 
    - .0 : "key1" 
    - .1 : value1 
    ▿ [1] : 2 elements 
    - .0 : "keyForColor" 
    ▿ [2] : 2 elements 
    - .0 : "key2" 

當您使用po dict.description,你會得到這樣的:

po dict.description 
"[\"key1\": value1, \"keyForColor\": UIDeviceRGBColorSpace 1 0 0 1, \"key2\": 42]" 
+0

相比在Xcode 6印刷字典,這個不可讀。即使有'po dict.description'。有沒有解決方法? – gpichler

+0

@ user1463853我沒有Xcode6。 「可接受」打印出來需要什麼?哪些信息缺失? – user3441734

+0

@ user1463853只是使用repl轉儲(字典)來更好地探索相同的字典 – user3441734

0

作爲跟進@ user3441734,你可以簡單地通過使用p代替po獲得最後一部分:

(lldb) p dict 
([String : NSObject]) $R1 = 3 key/value pairs { 
    [0] = (key = "key1", value = "value1") 
    [1] = (key = "keyForColor", value = 0x00007f9c42d3aab0) 
    [2] = (key = "key2", value = Int64(42)) 
} 

如果這不適合你的需要,你可以隨時寫一個字典的擴展和建立一個自定義的描述,在一行:

extension Dictionary { 

    var fancyDescription: String { 
     var description = "" 
     for (key, value) in self { 
      description += "\(key) : \(value), " 
     } 
     return "{ \(description) }" 
    } 
} 

,並用它來與po dict.fancyDescription

+0

檢查我的答案 – user3441734

3

嘗試用CFShow

打印核心基金會對象標準錯誤的描述。

po CFShow(dict) 
1
<command-name>'. 
(lldb) repl dump(dict) 
▿ 3 key/value pairs 
    ▿ [0]: (2 elements) 
    - .0: key1 
    ▿ .1: Swift._NSContiguousString #0 
     ▿ super: Swift._SwiftNativeNSString 
     ▿ super: value1 
      ▿ NSString: value1 
      - NSObject: value1 
     ▿ _core: Swift._StringCore 
     ▿ _baseAddress: Swift.COpaquePointer 
      - _rawValue: (Opaque Value) 
     - _countAndFlags: 6 
     - _owner: nil 
    ▿ [1]: (2 elements) 
    - .0: keyForColor 
    ▿ .1: UIDeviceRGBColorSpace 1 0 0 1 #1 
     ▿ UIDeviceRGBColor: UIDeviceRGBColorSpace 1 0 0 1 
     ▿ UIColor: UIDeviceRGBColorSpace 1 0 0 1 
      - NSObject: UIDeviceRGBColorSpace 1 0 0 1 
    ▿ [2]: (2 elements) 
    - .0: key2 
    ▿ .1: 42 #2 
     ▿ NSNumber: 42 
     ▿ NSValue: 42 
      - NSObject: 42 
([String : NSObject]) $R1 = 3 key/value pairs { 
    [0] = (key = "key1", value = "value1") 
    [1] = (key = "keyForColor", value = 0x00007f9c42d3aab0) 
    [2] = (key = "key2", value = Int64(42)) 
}