Swift开发用到的第三方库^^

从OC到Swift开发,过去将近1年了.在自己公司项目处于维护,和优化的时间.O(∩_∩)O哈哈~,自己总结一下常用的第三个库.排名不分先后(GitHub上最为开发者认可)

以下纯属于个人使用,如有错误欢迎纠正 !

  • Alamofrie : 网络请求事件处理的框架

//单纯的网络请求,获取服务器数据
func PostMethod(ApiString:String,paragrams:[String:AnyObject]?,fineshed:@escaping LoadFinished)
    {
        //请求头
        //let requestHeader:HTTPHeaders = ["Range":"1-3",
        // "Content-Type":"allication/json"];
        Alamofire.request(ApiString, method: .post, parameters: paragrams, encoding: URLEncoding.default).responseJSON { (response:DataResponse<Any>) in
            if response.result.error == nil
            {
                let json = JSON(data: response.data!)
                fineshed(true,json,nil)
            }
            else
            {
                fineshed(false,nil,response.result.error)
            }
        }
        
    }

更多使用直接戳 -> Alamofrie

  • SwiftyJSON : JSON解析类 (配合Alamofire使用)

SwiftyJSON的设计原则 : 保证怎么玩都不会引起app的crash,不要被API的数据绑架
中文版简介

let json = JSON(data: response.data!)

不过我本人喜欢用 系统的key-value (Setvalueforkey)复制方法 映射模型数据

class User: Mappable {
   var username: String?
   var age: Int?
   var weight: Double!
   var array: [Any]?
   var dictionary: [String : Any] = [:]
   var bestFriend: User?                       // Nested User object
   var friends: [User]?                        // Array of Users
   var birthday: Date?

   required init?(map: Map) {

   }

   // Mappable
   func mapping(map: Map) {
       username    <- map["username"]
       age         <- map["age"]
       weight      <- map["weight"]
       array       <- map["arr"]
       dictionary  <- map["dict"]
       bestFriend  <- map["best_friend"]
       friends     <- map["friends"]
       birthday    <- (map["birthday"], DateTransform())
   }
}

具体用法可参考 Masonry

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)
       }
   }

 }

偷偷告诉你他本人在日本,你懂得(别问我为什么知道)->

let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)
let reachability = Reachability()!
//declare this inside of viewWillAppear

    NotificationCenter.default.addObserver(self, selector: #selector(self.reachabilityChanged),name: ReachabilityChangedNotification,object: reachability)
   do{
     try reachability.startNotifier()
   }catch{
     print("could not start reachability notifier")
   }

  • SQLite.swift:简单、轻量,使用上最SQL的SQLite封装库

 let db = try Connection("path/to/db.sqlite3")
 let users = Table("users")
 let id = Expression<Int64>("id")
 let name = Expression<String?>("name")
 let email = Expression<String>("email")

 try db.run(users.create { t in
   t.column(id, primaryKey: true)
   t.column(name)
   t.column(email, unique: true)
 })
  • Refresher:Swift刷新控件,支持自定义动画

tableView.addPullToRefreshWithAction {
    NSOperationQueue().addOperationWithBlock {
        sleep(2)
        NSOperationQueue.mainQueue().addOperationWithBlock {
            self.tableView.stopPullToRefresh()
        }
    }
}
NVActivityIndicatorView(frame: frame, type: type, color: color, padding: padding) 

好多库 详细的用法 Github 搜索

今天下写到这里,以后返现了会贴上去,和大家分享,共同进步!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,190评论 4 61
  • 雨,已经下了一天一夜。 按常理,春雨是“随风潜入夜,润物细无声”的,是朱自清《春》中描述的“可别恼,看,像牛毛,像...
    陌上莲花阅读 3,821评论 23 14
  • 尹志平是《神雕侠侣》电视剧里最让我憎恶的一个角色,凭什么就这样轻而易举的把我“龙姑姑”强奸了?金庸大师为何要如此编...
    大头超人x阅读 26,225评论 1 1
  • 感冒加重,还没好。——大栗致自己 很多人知道前五感,也听过第六感,怎么就冒出来一个第七感呢?由于网络连接有一个“爆...
    有杕之杜阅读 2,498评论 1 2
  • 关于ipv6网络请求机制不在赘述,网上教程挺多,简单说下我的解决方法。 苹果的审核要求是在iOS9以上支持就可以,...
    叶子江阅读 3,996评论 5 1