ios之runtime的认识

http://www.imlifengfeng.com/ 没事多看看博客,常回味基础的概念。

Objc Runtime其实是一个Runtime库,它基本上是用C和汇编写的,这个库使得C语言有了面向对象的能力。

Objective-C 封装:隐藏属性方法、继承:点语法、多态:动态类型、动态加载、动态绑定

动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。

指针 和 数据结构(struct)
SEL方法选择器 id参数指针 Class类 Method方法 Ivar变量
IMP函数指针 Cache为方法调用的性能进行优化 Property属性

消息传递 在方法的运行时实现被调用后才会返回数据。

关键字 self -> receiver

APP生命周期
打开程序 -> 入口:main函数 -> UIApplicationMain -> 创建app对象,设置代理 -> 开启主线程RunLoop(事件循环) -> 结束程序

UIApplicationDelegate 可以处理的事件包括应用程序的生命周期事件(比如程序启动和关闭)、系统事件(比如来电、记事项警 告)

每条线程都有唯一的一个与之对应的RunLoop对象
CFRunLoopModeRef 保证界面滑动时不受其他Mode影响

界面刷新并不一定是在setNeedsLayout相关的代码执行后立刻进行的

在loadView之前,是没有view的(容器)-> viewDidLoad