简体   繁体   English

如何打印轨道数据(swift)

[英]how to print track data (swift)

So I have the following code printing out the following所以我有以下代码打印出以下内容

[DRN1.Data(track: DRN1.Trackinfo(title: "Charly\'s Ballad (Original Mix)", artist: "Castle Queenside", imageurl: "covers.drn1.com.au/az_B1017197_Disc 1 Traxsource Nu Disco & Indie Dance_Castle Queenside.jpg"))]

However when I go to write然而当我去写

print(nowplaying.data.track.title)

I get errors and it won't even attempt to load the swift app我收到错误,它甚至不会尝试加载 swift 应用程序

struct Nowplayng: Decodable{
    let data: [Data]
}

struct Data: Decodable{
    let track: Trackinfo
}
struct Trackinfo: Decodable {
    let title: String
    let artist: String
    let imageurl: String
}

works作品

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        let jsonURLString = "https://api.drn1.com.au/station/playing"
        guard let feedurl = URL(string: jsonURLString) else { return }

        URLSession.shared.dataTask(with: feedurl) { (data,response,err)
            in

            guard let data = data else { return }

            do{
                let nowplaying = try JSONDecoder().decode(Nowplayng.self, from: data)
                    print(nowplaying.data)


            }catch let jsonErr{
            print("error json ", jsonErr)
            }

//            let dataAsString = String(data:data, encoding: .utf8)
//            print(dataAsString)
        }.resume()



    }

does not work不起作用

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        let jsonURLString = "https://api.drn1.com.au/station/playing"
        guard let feedurl = URL(string: jsonURLString) else { return }

        URLSession.shared.dataTask(with: feedurl) { (data,response,err)
            in

            guard let data = data else { return }

            do{
                let nowplaying = try JSONDecoder().decode(Nowplayng.self, from: data)
                    print(nowplaying.data.track.title)


            }catch let jsonErr{
            print("error json ", jsonErr)
            }

//            let dataAsString = String(data:data, encoding: .utf8)
//            print(dataAsString)
        }.resume()



    }

data is an array you need to loop over it data是一个需要循环遍历的数组

nowplaying.data.forEach {
   print($0.track.title)
} 

If you care about the first item do如果您关心第一项,请执行

if let item = nowplaying.data.first {
   print(item.track.title)
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM