Xcode问题?对象中的词典在变量检查器中将所有值显示为false,而值实际上是true吗?

时间:2019-04-22 17:51:17

标签: swift xcode lldb

class ViewController: UIViewController {

    struct TestStruct: Decodable {
        var dict: [String: Bool]?
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        let json = """
        {"dict":{
            "test": true
        }}
        """.data(using: .utf8)!

        let decoder = JSONDecoder()
        let product = try? decoder.decode(TestStruct.self, from: json)
        print(product)
    }
}

使用此代码段,字典字典的“ test”值应为true。如果您在print(product)上设置了一个断点(断点不在打印中,但是我在屏幕截图中进行了过渡),然后在左下方的变量检查器中查看变量值,

enter image description here

dict [String:Bool]? 1个键/值对一些 [0](键:字符串,值:布尔)
键字符串“测试”
布尔值false

该值设置为false。

但是,当我们使用po来访问该值时,该值似乎已正确设置为true:

 Optional<TestStruct>
  ▿ some : TestStruct
    ▿ dict : Optional<Dictionary<String, Bool>>
      ▿ some : 1 element
        ▿ 0 : 2 elements
          - key : "test"
          - value : true

我们想知道这里发生了什么?为什么po product会因为包含字典而返回良好的值,而GUI变量检查器却将其设置为false。

我们将Xcode 10.1用于测试项目。

0 个答案:

没有答案