设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

十款不容错过的Swift iOS开源项目:学个痛快!

2014-10-17 11:41| 发布者: joejoe0332| 查看: 3901| 评论: 0|原作者: csdn|来自: csdn

摘要: 如果你从事的是iOS开发的工作,那么使用Swift语言也许会是一个不错的选择,相较Objective-C,Swift更易学习也更加强大。不过,纵观Swift教程,你会发现讲解的比较广泛,且并未深入涉及代码学习和实现等。这里,为了 ...


5. ExSwift

ExSwift是一组Swift语言对标准类型和类的扩展。

代码示例:

迭代

  1. each (eachFunction each: (Key, Value) -> ())  
  1. let dictionary = ["A": 1, "B": 2, "C": 3]  
  2. dictionary.each { key, value in println(key, value) }  
  3. /* Prints → */  
  4. // (A, 1)  
  5. // (B, 2)  
  6. // (C, 3)  

6. SwiftTask

SwiftTask是使用Swift语言编写的状态机,拥有许多和他人创建的业务工作流任务的用例,综合了Promise + progress + pause + cancel,使用SwiftState(状态机)。

代码示例:

基本定义

  1. // define task  
  2. let task = Task<Float, String, NSError> { (progress, fulfill, reject, configure) in  
  3.     player.doSomethingWithProgress({ (progressValue: Float) in  
  4.         progress(progressValue) // optional  
  5.     }, completion: { (value: NSData?, error: NSError?) in  
  6.         if error == nil {  
  7.             fulfill("OK")  
  8.         }  
  9.         else {  
  10.             reject(error)  
  11.         }  
  12.     })  
  13.     // pause/resume/cancel configuration (optional)  
  14.     configure.pause = { [weak player] in  
  15.         if let p = player { p.pause() }  
  16.     }  
  17.     configure.resume = { [weak player] in  
  18.         if let p = player { p.resume() }  
  19.     }  
  20.     configure.cancel = { [weak player] in  
  21.         if let p = player { p.cancel() }  
  22.     }  
  23. }  
  24. // set then & catch  
  25. task.then { (value: String) -> Void in  
  26.     // do something with fulfilled value  
  27. }.catch { (error: NSError?, isCancelled: Bool) -> Void in  
  28.     // do something with rejected error  
  29. }  
  30. // you can call configured operations outside of Task-definition  
  31. task.pause()  
  32. task.resume()  
  33. task.cancel()  

7. HanekeSwift

Haneke是一款使用Swift语言编写的,轻量级的iOS通用缓存。它为UIImage、NSData、JSON和String提供记忆和LRU磁盘缓存或其他像数据可以读取或写入的任何其他类型。特别地是,Haneke更擅长处理图像。使用要求:iOS 8.0+、Xcode 6.0。

代码示例:

还可创建自己的缓存

  1. let cache = Haneke.sharedDataCache  
  2. cache.set(value: data, key: "funny-games.mp4")  
  3. // Eventually...  
  4. cache.fetch(key: "funny-games.mp4").onSuccess { data in  
  5.     // Do something with data  
  6. }  

8. Cartography

Cartography是用来声明Swift中的Auto Layout,无需输入任何stringly就可设置自己Auto Layout的约束声明。

代码示例:

如何使用

  1. layout(view1, view2) { view1, view2 in  
  2.     view1.width   == (view.superview!.width - 50) * 0.5  
  3.     view2.width   == view1.width - 50  
  4.     view1.height  == 40  
  5.     view2.height  == view1.height  
  6.     view1.centerX == view.superview!.centerX  
  7.     view2.centerX == view1.centerX  
  8.     view1.top >= view.superview!.top + 20  
  9.     view2.top == view1.bottom + 20  
  10. }  



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部