2017-01-03 2 views
1

私はカスタムオブジェクトを持っている:カスタムJSONオブジェクトの値をダウンロードした後に出力するにはどうすればいいですか?

class SampleJSON { 

    var costDictionary: [String: Any] 
    var airbnbDetails: [String: Any] 
    var airbnbUS: Int 
    var airbnbLocal: Int 

    init(costDictionary: [String: Any], airbnbDetails: [String: Any], airbnbUS: Int, airbnbLocal: Int){ 

    self.costDictionary = costDictionary 
    self.airbnbDetails = airbnbDetails 
    self.airbnbUS = airbnbUS 
    self.airbnbLocal = airbnbLocal 
} 

init(resultsDictionary:[String: Any]){ 

    costDictionary = (resultsDictionary["cost"] as? [String: Any])! 
    airbnbDetails = (costDictionary["airbnb_median"] as? [String: Any])! 
    airbnbUS = (airbnbDetails["USD"] as? Int)! 
    airbnbLocal = (airbnbDetails["CHF"] as? Int)! 
} 

私は、彼らがダウンロードされた後のオブジェクトの値をプリントアウトしようとしている:

static func downloadAllTableViewData(urlExtension:String) -> [SampleJSON] { 

    var sampleJSON = [SampleJSON]()//array of custom object 

    let usm = UrlSessionNetworkManager.sharedManager 

    if let jsonDictionary = usm.parseJSONFromData(urlExtension:urlExtension) 

    { 
     let resultDictionaries = jsonDictionary["result"] as! [[String : Any]] 
     for resultsDictionary in resultDictionaries {// enumerate through dictionary 
     let nomadInfo = SampleJSON(resultsDictionary: resultsDictionary) 

     sampleJSON.append(nomadInfo) 
     } 
    } else { 
     print("Error: Cannot retrieve JSON Data") 
    } 

    print(sampleJSON) //Print Data here 

    return sampleJSON 
    } 
} 

私はすべての値をプリントアウトしようとしています私は(sampleJSON)を使用した印刷をしようとすると、カスタムオブジェクトのすべてが、私はコンソールにプリントアウトを取得され

MyProject.SampleJSON

助けてください!

+0

自分のクラスの 'init'の前に、' resultsDictionary'を出力してください。 – JuicyFruit

答えて

0

SampleJSONクラスにdescription変数を追加し、CustomStringConvertibleに準拠させてください。例:

class SampleJSON: CustomStringConvertible { 

    var costDictionary: [String: Any] 
    var airbnbDetails: [String: Any] 
    var airbnbUS: Int 
    var airbnbLocal: Int 

    init(costDictionary: [String: Any], airbnbDetails: [String: Any], airbnbUS: Int, airbnbLocal: Int){ 

    self.costDictionary = costDictionary 
    self.airbnbDetails = airbnbDetails 
    self.airbnbUS = airbnbUS 
    self.airbnbLocal = airbnbLocal 
    } 

    init(resultsDictionary:[String: Any]){ 

    costDictionary = (resultsDictionary["cost"] as? [String: Any])! 
    airbnbDetails = (costDictionary["airbnb_median"] as? [String: Any])! 
    airbnbUS = (airbnbDetails["USD"] as? Int)! 
    airbnbLocal = (airbnbDetails["CHF"] as? Int)! 
    } 

    var description: String { 
    return "SampleJSON(cost: \(self.costDictionary), airbnb: \(self.airbnbDetails), airbnb US: \(self.airbnbUS), airbnb local: \(self.airbnbLocal))" 
    } 
} 
+0

それはうまくいった!私はこれを早期に知っていればいいと思う。ご協力いただきありがとうございます! – SwiftyJD

関連する問題