P36348's Blog

别偷懒

iOS碎片化知识点汇总(持续更新)

语言 weak, _ _weak 和 _ _block 修饰符 Objective-C中, weak用于修饰属性, __weak 和 __block用于修饰局部变量.   weak __weak __block 修饰对象 属性 局部变量 局部...

RxCocoa中对UIKit的Delegate的处理

记一次RxSwift/RxCocoa源码阅读

RxCocoa(scrollView.rx.didScroll) 得益于RxCocoa对UIKit做了extension,我们使用UI组件的Rx封装时只需要调用rx属性,就可以访问到Rx框架的内容。比如需要订阅UIScrollView的滚动事件: 1 2 3 4 5 scrollView .rx.didScroll .subscribe(onNext: { () in prin...

Swift泛型应用, UserDefault

开发中经常会用到UserDefault来存储零碎的数据, 用普通的写法比较低效. 1 let uid = UserDefaults.standard.value(forKey: "userdefault.key.uid") as? Int 可以利用Swift的extension来给Int类型添加便捷的函数: 1 2 3 4 5 6 7 extension Int { stat...

iOS数据持久化解决方案Realm(待完成)

前言 iOS数据持久化数据库方式解决方案, 主流的有FMDB(SQLite), CoreData, Realm. 三者中CoreData的使用比较不方便, FMDM需要关注线程安全的问题. 而Realm除了API友好, 在线程处理上也相对方便, 而且可以使用桌面应用Realm Browser查看iOS模拟器的数据库文件. 需要持久化的数据 启动广告数据 ...

RxSwift应用MVVM

工作期间项目中RxSwift的应用

前言 目前高移动端应用的要求已经越来越高, 主要体现在: 越来越复杂的用户可操作页面; 多个页面一起承载繁琐的业务; 多个状态需要实时反映到应用界面. 这种背景下正是MVVM模式施展的时候, 而MVVM模式下的好搭档无疑要提到响应式框架.以下把个人在工作中对RxSwift&MVVM实践的经验记录一下. 数据流中心模块: Service 我在项目中构建了一个S...

RxSwift, 异步操作组合处理

工作期间项目中RxSwift的应用

响应式编程&链式编程 接手thinker.vc的几个iOS共享经济项目, 有较多后台定时的网络请求,定位和蓝牙操作的组合. 原实现方案是直接把不同操作通过闭包嵌套起来, 如此一来有些比较头疼的问题: 异步操作组合出现”回调地狱”, 每个组合操作的业务上有变动需要做大修. 任务管理不便,无法获取或取消上一次的请求/操作. 异...