Swift - 只能打印对象的内存地址

Wad*_*ers 3 api rest ios yelp swift

我正在使用Yelp API并下拉YLPBusiness.当我尝试print()或dump()YLPBusiness时,我只收到控制台日志中的内存地址.

如果我打印(YLPBusiness.name),我将收到该名称.如何完全打印出YLPBusiness对象的所有属性值?

代码和控制台日志的屏幕截图

Kli*_*akM 7

你应该覆盖你的类description属性:

func description() -> String {
    return "Business name: \(self.name), address: \(self.address), etc."
}
Run Code Online (Sandbox Code Playgroud)

在哪里打印所需的所有属性YLPBusiness.

您可以通过将方法转换为属性来修复注释中提到的问题:

public override var description: String {
    return "Business name: \(self.name), address: \(self.address), etc."
}
Run Code Online (Sandbox Code Playgroud)

之所以发生这种情况,是因为Swift检测到Swift类型系统中的重载和覆盖之间存在差异,以及通过Objective-C运行时看到的有效行为.