此篇文章记录一下自学Swift的心得
1.先从网络请求开始,在oc中常用的网络请求第三方是AFNetworking,而在swift中的第三方是Alamofire,这个第三方库就是swift版的AFNetworking,使用非常简单。
GitHub地址:戳这里 - Alamofire
下面有个简单的Alamofire封装 包含Post和Get请求 这个是最简单基本的封装 后期我会慢慢完善整体代码的
import UIKit
import Alamofire
enum MethodType {
case get
case post
}
class NetworkTools {
class func requestData(_ type : MethodType, URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping (_ result : Any) -> () ,error : @escaping (_ result : Any) -> ()) {
// 1.获取类型
let method = type == .get ? HTTPMethod.get : HTTPMethod.post
// 2.发送网络请求
Alamofire.request(URLString, method: method, parameters: parameters).responseJSON { (response) in
// 3.获取结果
guard let result = response.result.value else {
print(response.result.error!)
error(response.result.error!)
return
}
// 4.将结果回调出去
finishedCallback(result)
}
}
}
2.SnapKit 看到这个大家有可能会不认得 但是看到他你们就会很熟悉了
import SnapKit
class MyViewController: UIViewController {
lazy var box = UIView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(box)
box.snp.makeConstraints { (make) -> Void in
make.width.height.equalTo(50)
make.center.equalTo(self.view)
}
}
}
是不是想起oc中的Masonry来了,这个SnapKit的使用方法和Masonry基本一样 会用Masonry的同学简单的看下SnapKit就可以立马上手了。
来 这里是它的GitHub 戳这里 - SnapKit
3.平时呢,在oc中大家常用的HUD都是“ MBProgressHUD”和“ SVProgressHUD”
在swift中我找到一个比较简单好用的第三方 用法和SVProgressHUD一样
import ZKProgressHUD
ZKProgressHUD.show()
DispatchQueue.global().asyncAfter(deadline: DispatchTime.now() + .seconds(3), execute: {
DispatchQueue.main.async {
ZKProgressHUD.dismiss()
}
})
是不是很简单 这个第三方呢就戳这里 - ZKProgressHUD 这么优秀的第三方 大家在用的时候顺便给个star吧 在此先谢谢了
4.接下来吐血推荐HandyJSON 在oc中很习惯的用MJExtension或者YYModel这些JSON转Model的第三方库 在swift中就突然懵逼了 后来经过不懈的努力知道了HandyJSON 先上代码看看 你们就知道多么好用了
let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}"
if let object = BasicTypes.deserialize(from: jsonString) {
print(object.int)
print(object.doubleOptional!)
print(object.stringImplicitlyUnwrapped)
}
So easy 这个的地址在这HandyJSON
好了 以上是几个比较不错的第三方库 接下来就说一下在使用swift过程中遇到的问题
传送门在这里-> Swift心得之学习过程中遇到的问题(二)
网友评论