背景
object graph: 对象图,相比于反映类际关系的UML,对象图用于反映某一时间点各对象之间的相互联系,对象的互联网络称为对象图, 可以用来描述app当前的运行状态。它是一张有向图,对象之间的关系由指针体现。
dynamic typing: a variable is dynamically typed when the type of the object(s) it will name is not specified at compile time. A program is dynamically typed if it uses at least one dynamically typed variable. A language supports dynamic typing if it is possible to write dynamically typed programs in it. A language is dynamically typed if most variables in typical programs written in that language are dynamically typed.
dynamic binding: 调用对象的方法,或者使用参数调用函数时会根据对象实际类型,选择正确的方法调用,与静态绑定的区别在于静态绑定的方法及函数调用在编译期已经确定了。动态绑定的最大好处在于在组件对象编程中,不需要编译器在编译期引用包含了所使用的对象的库。
OC提供语言级的对象图管理及对象直接量的支持,同时提供动态类型(the property of a language where type checks are performed mostly at run time)及动态绑定,以将更多的工作推迟到程序运行的过程中。
categories扩展再有的类:与其创建全新的类以增加相对于现存的类很少的功能,更合理的做法是在现存类的基础上添加自定义的行为,可以为任何类添加自定义方法,即使是拿不到源码的系统类。
protocols提供消息契约
Block简化公共任务: