布局结束监听工具
有些时候,需要知道什么时候View会布局完成。比如需要在View布局完成之后,希望页面自动跳转到某一
个模块,如果不知道View什么时候布局完成,那跳转到某个位置的高度就无法计算了。
有些时候,需要知道什么时候View会布局完成。比如需要在View布局完成之后,希望页面自动跳转到某一
个模块,如果不知道View什么时候布局完成,那跳转到某个位置的高度就无法计算了。
通过观察者注册到RunLoop可以在以下几个阶段收到通知
kCFRunLoopEntry
kCFRunLoopBeforeTimers
kCFRunLoopBeforeSources
kCFRunLoopBeforeWaiting
kCFRunLoopAfterWaiting
kCFRunLoopExit
kCFRunLoopAllActivities
__CFRunLoopRun具体源码分析可见这篇博客,根据源码提炼出Runloop循环的主要流程如下图:
在同时使用RAC和Aspects的时候,遇到了一个Crash,栈溢出了。
看了一下,是之前在项目中使用了RAC的rac_singalForSelector
1 | @weakify(self); |
git hook 通过在代码commit和push之前执行一个脚本,来实现一些检查性工作😎。
在.git/hooks目录下的脚本文件,默认情况下该目录下有以下文件
applypatch-msg.sample
commit-msg:sample
通常通过method swizzle可以交换两个方法的实现(不限于同一个类型),先看一段代码:
People类
1 | - (void)talk |
NSURLSession是iOS7推出的新一代网络框架,在NSURLConnection的基础上多了一种选择,AFNetwrking基于NSURLSession也实现了相应的网络请求API。从功能模块划分,网络可用性,数据的序列化和反序列化以及安全策略这几部分都是一样的,主要是网络请求的管理,请求和返回的处理比前者更加简单,应该说NSURLSession从系统层面实现了NSURLConnection没有实现的部分,比如管理多个请求,直接面向应用层提供上传下载的接口,所以AFNetworking基于NSRULSession实现的网络层更简单,但是功能上没有NSURLConnection那么丰富,比如监听所有任务中完成任务的进度,还有和UIKit的集成。