犹豫中,终于写完第一个Swift的项目,一直都在用oc 写项目,之前没有机会使用swift 写项目。
我先说一下我这个项目的架构
1.项目整体是storyBoard 布局的
2.使用的是MVC 模式
3.解析数据是swift原生的解析
4.网络请求使用的是Alamofire自己封装的(后期像改成moya)
5.后台是PHP
注意PHP语言返回的数据类型
很多PHP 返回的是NSNumber 的类型 Swift 对数据类型很多都不友好
Swift提供的数据类型有:Int, Double, Float, Bool, String
Swift提供的集合类型包括:Array, Dictionary, Set
Swift提供的其他辅助类型: enum, Struct
所以要和后台确定一下返回的具体数据类型(这个地方会有很多坑)
原生解析的model(我用的结构体写的)
后台返回的数据
{
"code": 200,
"datas": {
"versions": 1,
"iosversions": 1,
"content": "更新细节内容",
"ioscontent": "更新细节内容",
"downurl": "www.baidu.com"
}
}
这是struct model的写法(也有很多同学用class)
import Foundation
struct VersionModel: Codable {
var code : Int
var datas: DataInfo
struct DataInfo: Codable {
var versions :Int
var iosversions: Int
var content: String
var ioscontent: String
var downurl: String
}
}
原生的数据解析 代码很简单我就直接贴代码了
let decoder = JSONDecoder()
let model = try? decoder.decode(VersionModel.self, from: json)
self.versionModel = model