欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swift:音乐播放器实现(1)获取网络数据并显示

程序员文章站 2022-06-08 14:06:57
...

总体来说这个软件的实现难点更多的在UI界面……

第一步里先将获取到的网络数据显示。
首先API的获取:https://www.showapi.com/api/lookPoint/213/4
由这个网址获得
可以看到他必须要传的参数是appid,secret,还有topid,前两个进行注册并申请就可以获得,然后用CocoaPods在Xcode中导入Alamofire还有swityJSON,import进文件后先创建一个简单的请求来获得他返回的数据,将数据复制粘贴进https://jsoneditoronline.org/里面看他数组的分布,当然也可以先用Postman来获得网址返回的数据,清楚数据分布之后将获取的数据详细至你所需要的值,例如获取歌手在[“showapi_res_body”][“pagebean”][“songlist”]下面的数组中。

用swiftyJSON的功能将返回的数值提取成Xcode可以使用的形式,之后创建一个数组songlistArray来储存所获得的值,由于songlist下面还有很多数组,所以dic可以用他总的数组数量进行遍历,然后获取所有singername和songname的值。

func downLoadData(){
        
        let paras = ["showapi_appid":appid,"showapi_sign":secret,"topid":"\(5)"]
        Alamofire.request("https://route.showapi.com/213-4",method: .post,parameters:paras).responseJSON { response in
            
            if let json = response.result.value {
                let JSOnDictory = JSON(json)
                let songlistArray = JSOnDictory["showapi_res_body"]["pagebean"]["songlist"].arrayValue
                for dic in songlistArray{
                    let model = musicModel()
                    model.SingerName = dic["singername"].stringValue
                    model.SongName = dic["songname"].stringValue
                    self.models.add(model)
                }
                self.tableView.reloadData()
            }
        }
        
    }

将TableView的行数与singername/songname相对应,就将每一个歌手和歌曲名字显示出来了。

 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return self.models.count
    }

   
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCell(withIdentifier: "List", for: indexPath) as! ListCell
        let model:musicModel = self.models[indexPath.row] as! musicModel
        cell.SingerName.text = model.SingerName
        cell.SongName.text = model.SongName
        
        
        return cell
    }
    

其外的文件有一个ListCell文件来对应Lable去显示网络获取的数值,musicModel用于数据的存储

相关标签: swift