开头:swift每天都在变的越来越流行,苹果公司也在不断的更新,如果你正开始一个新项目或者在ios开发行业不落后,你应该学习掌握如何使用swift。为了你转变(从iOS转swift)更容易和节省你的时间,下面是我将自己整理的相关资料奉上。
1.CocoaPods
和OC的用法差不多,只是在Podfile文件中有差别,需要多添加“use_frameworks!”,作用是把三方库打包成静态库:
source 'https://github.com/CocoaPods/Specs.git' platform :ios,'10.0' use_frameworks! target ‘SwiftTest’ do end
相关文章:http://www.jb51.cc/article/p-yeczevzf-bgc.html
http://blog.csdn.net/lifeng__/article/details/52583341
2.Alamofire
Alamofire的前身是AFNetworking,其实AFNetwork的前缀AF便是Alamofire的缩写。当你想要抽象简化App中的网络请求时,Alamofire是你需要的,Alamofire是一个Http网络请求库,构建在NSURLSession和基础URL加载系统之上,它用简单优雅的接口很好的封装了网络请求。可以使用Cocoapods导入到项目工程中。
Alamofire.request("http://api-test/v2/user/recomlist",method: .post,parameters: ["userid":"218"],encoding: JSONEncoding.default,headers: nil).responseJSON { (response:DataResponse<Any>) in switch(response.result) { case .success(_): if let data = response.result.value{ print(response.result.value) let dict:NSDictionary = response.result.value as! NSDictionary for tmp:NSDictionary in dict.value(forKey: "data") as! [NSDictionary]{ let contactModel = ContactModel.init(dict: tmp) self.dataArray.append(contactModel) } self.tableView?.reloadData() } break case .failure(_): print(response.result.error) break } }
3.ImagHelper
ImageHelper(原来叫AFImageHelper)是使用Swift语言编写的处理图片的类库,通过对UIImage和UIImageView的扩展。使其增加了对图片的压缩、颜色、渐变、裁剪等操作方法,以及支持使用缓存从网站上获取图片。
<span style="font-size:14px;">headerImageView.imageFromURL(model.image!,placeholder: UIImage.init(named: "btn_foot_bussines")!)</span>
4.SwiftyJSON
swift的Explicit types(显示类型)可以确保我们不会在代码中犯错和出现bug。但是有时处理起来还是比较麻烦,特别是和JSON打交道的时候。幸运的是,SwiftyJSON提供了可读性更好的方式帮我们处理JSON数据。还提供了可选的自动解析!
// Typical JSON handling if let statusesArray = try? NSJSONSerialization.JSONObjectWithData(data,options: .AllowFragments) as? [[String: AnyObject]],let user = statusesArray[0]["user"] as? [String: AnyObject],let username = user["name"] as? String { } // With SwiftyJSON let json = JSON(data: dataFromNetworking) if let userName = json[0]["user"]["name"].string { //Now you got your value }
SwiftyJson也可以很好的和Alamofire配合使用。
Alamofire.request(.GET,url).validate().responseJSON { response in switch response.result { case .Success: if let value = response.result.value { let json = JSON(value) print("JSON: \(json)") } case .Failure(let error): print(error) } }
5.ObjectMapper
如果你写过一个通过API获取信息的app,你可能需要花大量时间写代码把你的响应结果映射为你的object。ObjectMapper可以帮你把JSON格式响应结果转换成你的model对象,反之亦然。换句话说,它帮你把JSON映射成对象,也可以把对象转换成JSON。嵌套的对象也支持。
// Temperature class that conforms to Mappable protocol struct Temperature: Mappable { var celsius: Double? var fahrenheit: Double? init?(_ map: Map) { } mutating func mapping(map: Map) { celsius map["celsius"] fahrenheit map["fahrenheit"] } }
AlamofireObjectMapper也值得提一下,一个Alamofire的扩展使用ObjectMapper将JSON响应数据转换成swift对象。