返回描述变量的字符串的Swift函数。

问题描述 投票:0回答:1

在调试过程中,我经常发现打印出一个变量的名称很有用。所以对于一个变量var foo = 5, print("foo: \(foo)") 其中打印 foo: 5.

我想写一个扩展(或其他方式),这样我就可以说 print(foo.described()) 并得到同样的结果。

我最接近的尝试是这样的

extension NSObject {
    func described() -> String {
        return "\(???): \(self)"
    }
}

但要想得到变量的实际名称,并不直接。非常感谢任何帮助

swift function variables
1个回答
0
投票

将你的函数改为 镜子 对象

extension NSObject {
    func described() -> String {
        return "\(Mirror(reflecting: self).superclassMirror): \(self)"
    }
}

如果你想访问对象内部的变量,你也可以通过使用 .children.subjectType.

扩展的结果打印

MyClass: <_TtCC6legoid20MainTabBarController7MyClass: 0x6000005b0ca0>
© www.soinside.com 2019 - 2024. All rights reserved.