在 Swift 中实现 DebugPrintable 的 debugDescription

Implementing debugDescription for DebugPrintable in Swift

我正在尝试为 Swift class 编写自己的调试描述。我的代码如下所示:

class SceneData : DebugPrintable {
    var fileName : String
    var scene : Scene
    var uuid : String

    var debugDescription: String = {
        return String(format: "<SceneData: {\n  fileName: %s\n  scene: %@\n}>", fileName, scene)
    }
    /*
     * More methods, etc.
     */
}

我收到错误 'SceneData.Type' does not have a member named 'fileName',但是 SceneData 很明显确实有一个变量 fileName 在上面声明。尝试在字符串中使用 self 时,我也遇到了类似的问题,我相信这是相关的。

如何正确引用 debugDescription 字符串中的实例变量/self?我很确定这是可能的,既因为 other people have said it is,又因为让一个对象的调试描述没有关于它自己的任何实际细节看起来很荒谬。我在这里做错了什么?

删除=,因为它应该是一个计算属性。

var debugDescription: String{
        return String(format: "<SceneData: {\n  fileName: %s\n  scene: %@\n}>", fileName, scene)
}