有没有比手动检查每个变量更好的方法从协议检查 属性 of swift 对象?

Is there a better way to inspect property of swift object from a protocol than po each variable manually?

我有这个代码

public protocol UserItemModel {
    var identifier: String { get }
    var type: UserItemModelType { get }
    var isSelectable: Bool { get }
    var isActionable: Bool { get }
}

final class SampleItemModel: UserItemModel {
    let identifier: String
    var type: UserItemModelType
    var isSelectable: Bool
    var isActionable: Bool

    init(identifier: String = UUID().uuidString, 
         type: UserItemModelType = .user(SampleUserModel()), 
         isSelectable: Bool = false, 
         isActionable: Bool = true) {
        self.identifier = identifier
        self.type = type
        self.isSelectable = isSelectable
        self.isActionable = isActionable
    }
}

当我使用断点调试时,显示的值是这个。

总是 payload_xxx 并且我可以检查该值的唯一方法是手动与个人 属性 进行 po。当我调试 [UserItemModel].

时,情况更糟

有没有办法让所有属性直接显示在变量面板中?就像 Objective-C.

谢谢。

试试全局 dump(_:name:indent:maxDepth:maxItems:) 函数。

expr dump(itemModel)

此外,LLDB 可通过 Python 高度编写脚本,因此您也可以查看

可能与 Alexander 给出的响应类似,但也有 p 命令

p itemModel

输出比dump(_:name:indent:maxDepth:maxItems:)少,但比po命令更具描述性