Swift
文章平均质量分 87
WoodBear009
这个作者很懒,什么都没留下…
展开
-
swift3 模型转字典(JSON)
项目中最近需要将一个复杂的对象转成JSON,于是就利用Mirror写了一个模型转字典的通用方法,应该可以满足大部分使用场景下的需求了函数实现:func convertToDictNesting(obj: Any, remainFeild: [String]? = nil, replace: (((label: String, value: Any)) -> (String, Any))原创 2017-08-10 17:21:48 · 1817 阅读 · 0 评论 -
闭包与block-捕获变量差异
起初在学习使用swift时,对闭包的变量捕获部分并没有认真的去了解,想当然的认为应给和OC中的block捕获规则一样,结果最近在使用中产生了错误,回过头来再去了解时,发现了二者的捕获规则有着很大的差异,这里只说现象,提醒大家在使用中多加注意,至于原因,有兴趣的可以分别去具体了解一下闭包与block的变量捕获机制. 先看OC代码 TestModel *test = [[TestMod原创 2017-05-31 17:01:40 · 908 阅读 · 0 评论 -
借鉴Alamofire解决异步回调问题(Swift)
遇到的问题 今天在做一个swift练习demo时遇到了这样一个问题,我需要实现一个gps定位功能,于是封装一个LocationManager类去处理定位相关的逻辑,外部调用者需要获取定位信息时,直接调用LocationManager提供的getCurrentGpsInfo方法即可获取到当前的gps信息。 getCurrentGpsInfo函数内部实现大概是这样的原创 2017-03-03 14:25:19 · 7705 阅读 · 0 评论 -
Swift3.0学习实践-一个简单的画板(七色轨迹、可撤销、可清除、带橡皮擦)
写着玩儿的小程序,继续学习swift,运行效果+代码+知识点总结运行效果: 代码:Canvas类:画布,画图板状态管理、交互、处理手势class Canvas:UIView{ //负责线条的生成、操作与管理 let pathCreator:PathCreator //是否处于擦除状态 var isInErasering:B原创 2017-02-09 16:12:43 · 3832 阅读 · 8 评论 -
flatMap与Monad(Swift)
最近在看一些函数式编程方面的东西,有一个概念被反复的提及:Monad.为了弄明白这个词的含义,我看了不少的文章和视频,但是看了半天也基本是云里雾里的,似懂非懂的,感觉十分抽象。不过我注意到了一点,很多地方都提到:如果一个类型实现了flatmap,那它则具有Monad的性质。由此可见,flatmap似乎可以帮助我去理解Monad的概念,而正好,Swift中Array就支持flatmap,实践出真知,原创 2017-02-23 16:27:50 · 857 阅读 · 0 评论 -
Swift柯里化
Curry 今天同事推荐了一个swift柯里化相关的库,点击打开链接,打开看了看具体实现,瞬间不明觉厉,于是想好好研究研究他是怎么写的,顺便加强一下对柯里化的理解public func curry(_ function: @escaping (A) -> B) -> (A) -> B { return { (a: A) -> B in function(a) }}pub原创 2017-09-27 11:43:59 · 756 阅读 · 0 评论