Swift 如何将 Class 对象转为字符串并打印 - 使用 Mirror 反射
"使用 `Mirror` 来获取类的成员变量和属性,然后将其打印成字符串。以下是一个示例代码:\n\n`swift\nclass Person {\n\tvar name: String\n\tvar age: Int\n\n\tinit(name: String, age: Int) {\n\t\tself.name = name\n\t\tself.age = age\n\t}\n}\n\n\nextension CustomStringConvertible {\n\tvar description: String {\n\t\tlet mirror = Mirror(reflecting: self)\n\t\tvar description = "(mirror.subjectType)("\n\n\t\tfor child in mirror.children {\n\t\t\tif let propertyName = child.label {\n\t\t\t\tdescription += "(propertyName): (child.value), "\n\t\t\t}\n\t\t}\n\n\t\tif description.hasSuffix(", ") {\n\t\t\tdescription.removeLast(2)\n\t\t}\n\n\t\tdescription += ")"\n\t\treturn description\n\t}\n}\n\n\tlet person = Person(name: "John Doe", age: 25)\n\tprint(person)\n`\n\n输出结果将会是 `Person(name: "John Doe", age: 25)`。在上述代码中,我们通过在 `CustomStringConvertible` 协议中实现 `description` 属性,使用 `Mirror` 反射获取类的成员变量和属性,并将其拼接成字符串。
原文地址: https://www.cveoy.top/t/topic/pnFW 著作权归作者所有。请勿转载和采集!