面试遇到的笔试题(后续会添加答案)

2017-06-02  本文已影响17人  雨润听潮

1、frame和约束的关系,frame的原理

在iOS中,每个控件都是继承于UIView的,都会有视图的属性存在,控制这个视图的位置就有Frame和Bounds两个属性

frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)

bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)

2、scrollview的原理

在滚动过程当中,其实是在修改原点坐标,当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器,假如在计时器到点后,没有发生手指移动事件,那么,scroll view发送tracking events到被点击的subview假如在计时器到点前,发生了移动事件,那么 scroll view 取消tracking自己发生滚动

3、循环引用

    NSTimer经常会被作为某个类的成员变量,而NSTimer初始化时要指定self为target,容易造成循环引用。 另一方面,若timer一直处于validate的状态,则其引用计数将始终大于0

4、数据持久化

5、如何让播放器横屏

6、一个连续数组,中间丢了一个数,怎么知道丢失的哪个

7、uitableview去除偏移量

8、layer圆角 左上右下

9、APP签名流程

10、runtime执行过程

11、动态库静态库

12、字符串去重

13、点击响应事件

14、oc类怎么执行

1.当程序启动时,就会加载项目中所有的类,而且加载后会调用每个类的+load方法,只会调用一次;

2.当第一次使用某个类时,就会调用当前类的+initialize方法;

3.先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法,最后调用分类的+load方法),先初始化父类,再初始化子类(先调用父类的+initialize方法,再调用子类的+initialize方法)。

4.注意:在初始化的时候,如果在分类中重写了+initialize方法,则会覆盖掉父类的。

5.重写+initialize方法可以监听类的使用情况。

首先从硬盘load程序代码到内存。

其次操作系统找到程序入口开始执行。

上一篇下一篇

猜你喜欢

热点阅读