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

本文介绍了如何使用Swift开发音乐播放器,重点在于获取网络数据并显示。通过调用指定API,利用Alamofire和SwiftyJSON处理网络请求和解析JSON数据。在了解数据结构后,提取所需信息(如歌手名和歌曲名),存储于数组,并在UITableView中展示,实现了将网络数据绑定到UI界面。
摘要由CSDN通过智能技术生成

总体来说这个软件的实现难点更多的在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用于数据的存储

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值