Runloop: 实现滑动延迟加载。本质是一个线程使用 mach_msg()的系统调用循环等待。 thread-model-<timer,source,observer>
Runtime: 实现 AOP 埋点。本质是类的操作,NSObject 的元类的父类是 NSObject。 properties,Ivar,methods,category 分类是对上述三种类型的操作。
GCD: 实现用信号量 PV 保证两个请求均返回拼成一个数据模型。同步:顺序按 block 提交顺 序;异步:多个线程,串行队列有序,并行队列无序。
NSTimer 的内存泄露:
GCD 可以更好地实现 timer。timer 被 schedule 时,runloop 持有 timer,timer 持有 taget,此时对象无法触发 dealloc。必须 invalidate 释放 timer。
AutorelesePool: 本质是个存储地址的栈。
Entry-_objc_autoreleasePoolPush(), BeforeWaiting/Exit-_objc_autoreleasePoolPop() 。 Push 是依次出栈直到哨兵 nil。
UITableView 重用:利用 StoryBoard 中 segue 及 indexPath 改变参数,实现一个 UITableViewController 重用为多个页面。
Instruments 使用:解决自定义 navigation,按钮引用设置不当,导致退出 ViewController 后无法销毁的内存泄漏问题
开发左右生活 APP -iOS 手机端
- 负责“商圈”模块的实现
- 集成友盟,QQ 互联,微信的分享 Framework
- 实现 APNS、UNNotification 推送,集成极光推送
- 修改 UINavigationController.viewControllers 实现定向页面返回 参与开发为您租车 APP -iOS 手机端
- 集成 Alipay、微信支付 Framework
- 优化二维码扫描 AVFoundation 参数
开发为您租车 APP -iOS 手机端
- 集成 Alipay、微信支付 Framework
- 优化二维码扫描 AVFoundation 参数
开发蜜梨直播APP-iOS手机端
- 优化lottie动画播放内存,负责多个动画在iphone6下按队列播放
- 重构App界面UI框架,全局精确控制状态栏,主题栏
- 优化网络文件上传以及图片压缩重绘模式