学计算机的那个

不是我觉到、悟到,你给不了我,给了也拿不住;只有我觉到、悟到,才有可能做到,能做到的才是我的.

0%

消息发送(Messaging)是 Runtime 通过 selector 快速查找 IMP 的过程,有了函数指针就可以执行对应的方法实现;

消息转发(Message Forwarding)是在查找 IMP 失败后执行一系列转发流程的慢速通道,如果不作转发处理,则会打日志和抛出异常

阅读全文 »

大体上原理,就是通过创建不同优先级的context(5个),context中创建有限数量的queue(CPU核数)。
在使用的时候,通过优先级获取不同的context,然后轮着返回不同的queue让你换着用,你就可以一定程度上实现并行队列,并且控制线程数量。

阅读全文 »

拓展 VS 分类

一般用扩展做什么?

  • 声明私有属性
  • 声明私有方法
  • 声明私有成员变量

扩展的特点 (和分类的区别)

  • 编译时决议
  • 只以声明的形式存在,多数情况下寄生于宿主类的.m中
  • 不能为系统类添加扩展
阅读全文 »

问题

一个类的分类重写了这个类的方法后,那么这个类的这个方法将失效,那么原方法失效,分类方法生效的原因是什么?

阅读全文 »

艾德的父亲给所有逍遥法外的罪犯起了一个统一的代称-罗罗·汤马西.——–<洛城机密>

这篇博客总结一些,iOS开发中遇到的,比较特殊的问题,或者暂时想不到解决办法的问题。有些问题是个人能力不足,暂时没找到解决方案,有些可能就是苹果系统本身的问题。

阅读全文 »

layout

layoutSubviews在以下情况下回被调用

1
2
3
4
5
6
7
8
9
10
11
12
1、init初始化不会触发layoutSubviews
但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发

2、addSubview会触发layoutSubviews

3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化

4、滚动一个UIScrollView会触发layoutSubviews

5、旋转Screen会触发父UIView上的layoutSubviews事件

6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

注意

阅读全文 »

以前喜欢在写代码的时候,注重每个细节的性能,后来发现这样效率很低,常常在细枝末节上浪费过多时间,印证了那句过早的优化是万恶之源,所以现在更倾向于用性能检测手段检查出问题所在,有目的的优化。

阅读全文 »