1.自动释放池是如何工作的?
自动释放池是NSAutorelease类的一个实例,当像对象发送autorelease消息时,该对象会自动入池,待池销毁时,将向池中所有对象发送一条release消息,释放对象。
2指针题 和const ?
int *a[10]; //一个有10个指针的数组,该指针指向整型数。
int(*a)[10];//一个指向有10个整型数的指针。
const int *a ; 指向常整型数的指针。
int * const a; 指向整型数的常指针。
3static全局变量与普通的区别?局部变量呢?函数呢?
1>static全局变量只初始化一次,防止在其他文件单元被引用。
2>static局部变量只初始化一次,下一次依据上一次的结果值。
3>static函数在内存中只有一份,普通函数在每次调用都会维持一份拷贝。
4单利的优缺点?应用场景一般有什么?
缺点: 1>一个类只有一个对象,可能会造成责任重大,违背了“单一职责原则”。2>单利没有抽象层,扩展困难。3>单利创建后,整个app使用过程中都不会释放,占用内存,不能滥用。
优点:一个类只有一个对象,方便对该类数据的管理,方便全局调用。
使用场景:音视频播放器都是单利,用户数据信息封装为单利数据管理。
为什么用static修饰:单利不能放在堆区(控制器销毁,对象也销毁了)。需要放到静态区,同app生命周期一样,便于访问。
5.App启动过程都执行了那些操作?
1.先执行main函数 2.创建UIApplication对象 3.创建UIApplication的delegate对象。4.加载info.plist 读取主要的storyboard文件。5.开启一个线程循环。6.开始调用相关代理方法。
6.编程思想?
1>面向过程:处理事情以过程为主,一步一步实现。
2>面向对象:万物皆对象。
3>链式编程思想 :将多操作代码通过点链接在一起成为一句代码,提高代码可读性。方法返回值是block.
4>响应式编程:不考虑顺序,只需要知道结果,产生一个事件,影响很多东西,代表:KVO.
5>函数式编程思想:把操作尽量写成一系列嵌套的函数或者方法调用。react
iveCocoa.
网友评论