我有一个调用API的函数。 当我拨打指定的钥匙时,它将给我清单 把它保存到我的数组中
var car = [Car]()
我使用for循环来获取键的值
for result in fromApiResult.designatedKey {
self.car.append(Car(carName: result.Name, carType: result.Type))
}
然后我打印出汽车,看起来就像Type
print("\(car)") // [Car,Car]
那不是我想要的,我实际上希望它看起来像下面的
因为我将使用这些数据在TableView上显示
var car = [Car(carName:"BMW",carType:"SUV")]
但是如果我再次使用for循环,它可以获得正确的值
for result in car {
print(result.carName) //"BMW"
}
我真的很新,现在擅长提问 如果需要更多信息,请问我,谢谢。
答案 0 :(得分:1)
考虑以下示例,我发现了HERE
首先,您需要创建名为CustomStringConvertible
的扩展名
extension CustomStringConvertible {
var description: String {
var description: String = "\(type(of: self))("
let selfMirror = Mirror(reflecting: self)
for child in selfMirror.children {
if let propertyName = child.label {
description += "\(propertyName): \(child.value), "
}
}
description += "<\(Unmanaged.passUnretained(self as AnyObject).toOpaque())>)"
return description
}
}
然后您的班级需要确认该扩展名,例如:
class Person: CustomStringConvertible {
let name: String
let age: Int
init (name: String, age: Int) {
self.name = name
self.age = age
}
}
现在您可以在控制台中打印对象,如:
let alex = Person(name: "Alex", age: 20)
print(alex) // Person(name: Alex, age: 20, <0x000060c000058d20>)
有关更多信息,请阅读HERE。