Есть ли лучший способ проверить свойство объекта swift из протокола, чем вручную каждую переменную? - PullRequest
3 голосов
/ 27 сентября 2019

У меня есть этот код

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
    }
}

Когда я отлаживаю это с точкой останова, показывается следующее значение.

enter image description here

Всегдаpayload_xxx, и единственный способ проверить значение - это вручную установить индивидуальное свойство po.Это еще хуже, когда я отлаживаю [UserItemModel].

Есть ли способ сделать так, чтобы все свойства отображались непосредственно на панелях переменных?как в Objective-C.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 сентября 2019

Попробуйте глобальную dump(_:name:indent:maxDepth:maxItems:) функцию.

expr dump(itemModel)

Кроме того, LLDB поддерживает высокий уровень сценариев через Python, так что вы также можете посмотреть на эту

0 голосов
/ 27 сентября 2019

Может быть похоже на ответ, который дал Александр, но есть также команда p

p itemModel

Дает меньше вывода, чем dump(_:name:indent:maxDepth:maxItems:), но более информативно, чем po команда

...