​进程:

一个正在运行的程序可以看做一个进程。(例如:正在运行的QQ就是一个进程),进程拥有独立运行所需的全部资源

线程:

线程是进程的执行单元,进程的所有任务都在线程中执行。(例如:接收QQ消息的代码)
一个进程是由一或多个线程组成。进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。
同一个进程内的线程共享进程资源

view超过父级View可以显示,但是不能处理事件,-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event https://blog.csdn.net/qq_18505715/article/details/78411052

封装就是将数据隐藏起来,只能用此类的方法才可以读取或者设置数据,不可被外部任意修改是面向对象设计本质。这样降低了数据被误用的可能性 ,提高代码的灵活性!

继承,多个类具有相同的实例变量和方法时,可以考虑使用继承

多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

在项目什么时候选择使用GCD,什么时候选择NSOperation?

  • 项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。

  • 项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而Block参数的使用,会是代码更为易读,建议在简单项目中使用。