2018-07-13


Object-c对象本质上就是一个结构体

NSObject所占内存的大小就是结构体指针所占的大小,

64bit 从内存中动态分配的大小是由malloc_size()函数获取的,即16,NSObject对象真正使用的大小是8

程序启动原理:

Main函数中执行了一个UIApplicationMain函数

intUIApplicationMain(int argc,char *argv[],NSString *principalClassName,NSString *delegateClassName);

UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象的delegate属性

接着会简历应用程序的Main Runloop(事件循环),进行事件的处理(调用delegate对象的application:didFinishLaunchingWithOptions:方法)

程序启动的完整过程

1.main函数

2.UIApplicationMain

*创建UIApplication对象

*创建UIApplication的delegate对象

3.delegate对象开始处理(监听)系统事件(没有storyboard)

*程序启动完毕的时候,就会调用代理的applicatin:didFinishLaunchingWithOptions:方法

*在application:didFinishLaunchingWIthOptions:中创建UIWindow

*创建和设置UIWindow的rootViewController

*显示窗口

4.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

*创建UIWindow

*创建和设置UIWindow的rootIVewController

*显示窗口

你可能感兴趣的:(2018-07-13)