使用的第三方网络框架库:Alamofire,SwiftyJSON,博主一直都停留在mvc模式,所以还是使用mvc来进行讲解
1)创建个单例NetworkTools
class NetworkTools: NSObject {
static let shareTool = NetworkTools()
private override init() {
}
2)在该单例中写我们需要的网络请求
// MARK: - 网络请求类
extension NetworkTools
{
func requestData( url : String, method : HTTPMethod ,parameters : [String:Any],completion :@escaping (AnyObject?,NSError?) -> ())
{
Alamofire.request(url, method: method, parameters: parameters).responseData { (resp) in
if let error = resp.result.error{
print(error)
completion(nil,error as NSError)
}else if let value = resp.result.value{
let resumeObj = ResumeObj()
print(NSString.init(data: value, encoding: String.Encoding.utf8.rawValue))
print(JSON(value)["msg"].string!)
let resumeDic = JSON(value)["data"]["resume"]
resumeObj.code = JSON(value)["code"].int!
resumeObj.msg = JSON(value)["msg"].string!
if resumeDic.dictionary != nil{
resumeObj.city = resumeDic["city"].string!
resumeObj.phone = resumeDic["phone"].string!
resumeObj.email = resumeDic["email"].string!
resumeObj.headimgurl = resumeDic["headimgurl"].string!
}
completion(resumeObj,nil)
}
3)调用
let url = "http:baidu"
NetworkTools.shareTool.requestData(url: url, method: .post, parameters: ["phone":"15882641512","sms_code":"730639","platform":"ios"]) { (myResulet, error) in
if (error != nil) {
print(error)
}else{
self.resumeMode = myResulet as! ResumeObj
print(self.resumeMode.headimgurl)
print(self.resumeMode.code)
self.myTableView.reloadData()
}
4)关于Alamofire,SwiftyJSON的使用网上有很多不再这里介绍
5)当然也可以用AFNetworking,相当于混编
(1)必须建立一个桥接文件,桥接文件最简单的方法是:在swift代码中直接创建个OC类然后系统自动会创建一个桥接文件,这个时候你就可以删除创建的类,留下桥接文件,然后在桥接文件中导入OC类,这样就可以在Swift中使用OC类了
(2)在OC中使用swift类,导入头文件#import "swiftttt-Swift.h"即可
网友评论