2016-06-24 6 views
3

私はYelp APIを使用しており、YLPBusinessをプルダウンしています。 YLPBusinessをprint()またはdump()しようとすると、コンソールログにメモリアドレスだけが表示されます。Swift - オブジェクトのメモリアドレスのみを印刷することができます

ただし、(YLPBusiness.name)を印刷すると、その名前が送られます。 YLPBusinessオブジェクトのすべてのプロパティ値を完全に印刷するにはどうすればよいですか?

Screen shot of code and console log

答えて

7

あなたのクラスdescriptionプロパティをオーバーライドする必要があります。スウィフトはスウィフト型システムとObjective-経由で見効果的な行動に過負荷をとオーバーライドの間の矛盾点を検出するのでそれが起こっ

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

あなたはプロパティにあなたの方法を回すことにより、コメントに記載された問題を修正することができますCランタイム。

+0

それはそれを解決します!どうもありがとうございました。あなたとPaulw11はどちらも正しい考えを持っています。本当にありがとう! –

+0

私の喜びを助けてください。それがあなたのニーズに合っていれば、1つの答えを受け入れることを検討してください。 – KlimczakM

+0

私が残っている唯一のトリックは、YelPAPIがObjective-Cにあり、YLPBusinessをサブクラス化してdescription()funcを修正しようとしたときです... Objective-Cで "Method 'description() Cセレクタの 'description'が同じObjective-Cセレクタ "NSObject"の "description"のgetterと競合して " –

3

あなたが実際にオブジェクトのdescriptionメソッドを呼び出しているオブジェクトを印刷します。 YLPBusinessクラスはこのメソッドを実装していないようです。 descriptionメソッドを実装したYLPBusinessの拡張を作成できます。あなたが望むとおりにYLPBusinessのすべてのプロパティを印刷

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

+0

意味があります。明確化のためにありがとう! –

関連する問題