获取网络数据
紧接着上次的工程,这次我们要从网络上获取音乐数据,并将获取到的数据呈现在做好的UI上。
由于网络获取数据涉及到http请求,获取到的JSON数据要进行数据解析,这两步要分别用到两个第三方库:
获取数据前先新建一个类,我们将使用该类控制数据的获取:
import UIKit
//该类用于控制数据的获取
class HTTPController:NSObject{
//定义一个代理
var delegate:HttpProtocol?
//接收网址,回调代理的方法传回数据
func onSearch(url:String){
Alamofire.manager.request(Method.GET, url).responseJSON(options: NSJSONReadingOptions.MutableContainers) { (_, _, data, error) -> Void in
self.delegate?.didRecieveResults(data!)
}
}
}
//定义http协议
protocol HttpProtocol {
//定义一个方法,接收一个参数:AnyObject
func didRecieveResults(results:AnyObject)
}
然后再主视图中继承协议并创建该网络操作类的实例:
并为网络操作类设置代理:
实现协议中获取数据的方法:
将数据呈现在table中:
运行看看,歌曲已经获取并显示出来了: