Как заставить Xcode отображать строковое представление для пользовательского класса? - PullRequest
0 голосов
/ 10 июля 2020

Рассмотрим следующий класс:

class CalculatorButton: CalculatorButtonProtocol, CustomStringConvertible {
    var type: CalculatorButtonType
    var description: String {
        return label
    }
    
    let label: String
    init(_ label: String, type: CalculatorButtonType) {
        self.label = label
        self.type = type
    }
    
    func action(n1: String, n2: String?) -> String {
        fatalError("Not implemented")
    }
    
    func format(_ n: Float) -> String {
        if n == floor(n) {
            return String(Int(n))
        }
        
        return String(n)
    }
}

При отладке с использованием точек останова очень полезно видеть строковое представление класса в окне отладчика. Для вышесказанного я хотел бы видеть этикетку. Однако Xcode вместо этого показывает ссылку на экземпляр кнопки. Люди говорят, что принятие протокола CustomStringConvertible дает удобочитаемое представление класса, но это не помогло.

Ссылка на GitHub: https://github.com/asarkar/ios-bootcamp/tree/master/Calculator-SwiftUI

введите описание изображения здесь

1 Ответ

0 голосов
/ 10 июля 2020

Сделайте свой класс реализацией CustomDebugStringConvertible, это напечатает ваше собственное представление вместо адреса экземпляра.

class CalculatorButton: CustomDebugStringConvertible {

    // ...

    var debugDescription: String {
        label
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...