从零开始Swift学习:网络请求和JSON数据处理篇

使用的第三方网络框架库: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"即可

你可能感兴趣的:(从零开始Swift学习:网络请求和JSON数据处理篇)