Swift 编写APP Django提供API 学习 -2.前端APP

1.打开Xcode新建项目MoyaDemo


Swift 编写APP Django提供API 学习 -2.前端APP_第1张图片


2.选择IOS ,Single View Application 下一步


Swift 编写APP Django提供API 学习 -2.前端APP_第2张图片

输入项目名称:MoyaDemo

Swift 编写APP Django提供API 学习 -2.前端APP_第3张图片

安装cocopods ,新建podfile 

打开终端:cd 进入项目文件夹

运行: pod init 新建podfile文件


安装Moya第三方库:

platform :ios,'9.0'

use_frameworks!

target 'MoyaDemo' do

pod 'Moya'

end


Swift 编写APP Django提供API 学习 -2.前端APP_第4张图片

在终端执行命令 pod  install

Swift 编写APP Django提供API 学习 -2.前端APP_第5张图片

会提示执行成功。关闭项目,重新使用.xcworkspace打开项目


Swift 编写APP Django提供API 学习 -2.前端APP_第6张图片

封装一个用于网络访问的工具类:NetworkTools

新建文件,选择Cocoa Toutch Class NetworkTools

Swift 编写APP Django提供API 学习 -2.前端APP_第7张图片

下一步输入 NetworkTools ,选择继承的类是NSObject 下一步

Swift 编写APP Django提供API 学习 -2.前端APP_第8张图片

在NetworkToos 封装所有的网络请求。

实现moya的方法,遵循TargetType协议  增加一个方法,增加一个case 



import UIKit

import Moya

public enum NetworkTools {

case userList

}

extension NetworkTools : TargetType {

public var baseURL: URL {

return URL(string: "http://127.0.0.1:8000/api/")!

}

public var path: String{

switch self {

case .userList:

return "/users"

}

}

public var method: Moya.Method{

switch self {

case .userList:

return .get

}

}

public var parameters: [String : Any]?{

switch self {

case .userList:

return nil

}

}

public var parameterEncoding: ParameterEncoding{

switch self {

case .userList:

return URLEncoding.default

}

}

public var sampleData: Data{

switch self {

case .userList:

return "userList test data".data(using: String.Encoding.utf8)!

}

}

public var task: Task{

switch self {

case .userList:

return .request

}

}

}


Swift 编写APP Django提供API 学习 -2.前端APP_第9张图片

用ObjectMapper 对JSON格式进行解析


先安装 ObjectMapper


pod 'ObjectMapper'


Swift 编写APP Django提供API 学习 -2.前端APP_第10张图片

运行pod 安装命令:

Swift 编写APP Django提供API 学习 -2.前端APP_第11张图片

新建Model文件:User,点击新建,选择 Swift File


Swift 编写APP Django提供API 学习 -2.前端APP_第12张图片

导入ObjectMapper库,通过JSON字段来编写解析字段:


Swift 编写APP Django提供API 学习 -2.前端APP_第13张图片
Swift 编写APP Django提供API 学习 -2.前端APP_第14张图片

参考:https://github.com/Hearst-DD/ObjectMapper  编写解析

Swift 编写APP Django提供API 学习 -2.前端APP_第15张图片

在storyboard里拉一个按钮,点击测试获取json解析

Swift 编写APP Django提供API 学习 -2.前端APP_第16张图片


Swift 编写APP Django提供API 学习 -2.前端APP_第17张图片


编写方法:

import UIKitimport Moyaclass MainViewController: UIViewController {            @IBAction func getUser_btn(_ sender: UIButton) {                getUserList()            }    func getUserList()  {                let  provider = MoyaProvider()

provider.request(.userList) { (result) in

switch result {

case let .success(moyaResponse):

//将请求结果转化成字典

let json = try!moyaResponse.mapJSON() as! [String:Any]

//实例化一个User的模型对象

if let jsonRespones =  UserListResponse(JSON:json ){

print(jsonRespones.count,jsonRespones.userList)

}

case.failure:

print("网络错误")

}

}

}

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view.

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}


Swift 编写APP Django提供API 学习 -2.前端APP_第18张图片

运行提示网络错误:


Swift 编写APP Django提供API 学习 -2.前端APP_第19张图片


苹果默认https协议


Swift 编写APP Django提供API 学习 -2.前端APP_第20张图片

参考文章:

https://github.com/Moya/Moya/tree/master/docs

https://github.com/Moya/Moya/blob/master/docs/Targets.md

你可能感兴趣的:(Swift 编写APP Django提供API 学习 -2.前端APP)