Wade Sellers Wade Sellers - 4 months ago 10
Swift Question

Swift - can only print object's memory address

I'm using the Yelp API and pulling down a YLPBusiness. When I attempt to print() or dump() the YLPBusiness, I only receive the memory address in the console log.

If I print(YLPBusiness.name) however, I will receive the name. How can I fully print out all property values of the YLPBusiness object?

Screen shot of code and console log


You should override your class description property:

func description() -> String {
    return "Business name: \(self.name), address: \(self.address), etc."

where you print all properties of YLPBusiness as you desire.

You can fix your problem mentioned in comments by turning your method into property:

public override var description: String {
    return "Business name: \(self.name), address: \(self.address), etc."

It happened because Swift detects discrepancies between overloading and overriding in the Swift type system and the effective behavior seen via the Objective-C runtime.