iOS经典给试题

1.+load+initialize的区别是呀?

解析:上一个艺术,
主要从有限者入手.第一是,这个方法什么时候调用,第二她的图是什么.

  • load
    嘿时候调用:当次一样启动,就会管持有类加载进内存,只要一个像样加载进内存,就会调用这个仿佛的load方法.
    调用次数:只会调用一次等
    图:初始化类的操作
  • initialize
    嘿时候调用:当第一差使用是看似或其的子类就会调用
    调用次数:有或会见调用多次,比如说这个近乎产生一个子类,第一赖使用此子类的当儿,会调用2次.
    图:初始化类的操作

2.runtime兑现之编制是呀,有哪些用法,一般用于干嘛?

是什么?

  • runtime是运行会制.它是平仿照于底层的纯C语言API,属于一个言语库,包含了好多底层的C语言API.
  • 平时编辑的OC代码,在程序运行中,其实最终还是改变成了runtime的C语言代码,runtime算是OC的背后工作者.

** 有哪些用法?**

  • ①殡葬信息
  • ②换成方法(系统自带的艺术效果不够,给系统自带的方式扩展部分效益,并且保持原来的意义)
  • ③动态创建一个接近(比如KVC底层实现)
  • ④动态增长方法(如果一个看似措施很多,加载类到内存的上啊于耗费资源,需要给每个方法生成映射表,可以下动态为某类,添加方法化解)
  • ⑤字典转模型

3.什么时会发生EXC_BAD_ACCESS异常?

仰为僵尸对象(不可用内存)的指针 给野指针发消息会报EXC_BAD_ACCESS错误

4.category和extension的区别

解析
优先阐述一下马上简单个词之意,再分别说下立刻片只类似的作用动用状况 就OK了

  • category:分类
    1.意图:给一个近似扩展部分办法,不克扩大属性
    2.动状况: 扩展系统的类
  • extension:类目,类扩展,匿名分类
    1.意图:扩充属性与艺术声明
    2.利用状况: 扩展自定义类

5.若是怎掌握bounds的

解析
碰到这种糟糕答的题材,首先说有她的字面意思

  • 1.内容:每个控件都出协调之情节,一个控件子控件都是相对于内容
  • 2.bounds得设置控件尺寸
  • 3.bounds讲述一块区域,描述的凡可视范围以情节之区域
  • 4.改动Bounds的x,y,不见面影响当下控件在父控宗位置,本质修改的凡内容原点

6.UICollectionView用手续?

  • 1.初始化布局 流水布局
  • 2.安装数据源
  • 3.注册cell
  • 4.自定义cell

7.简述你针对协商的敞亮?

解析
怎去下是知识点 (这是新专家一般这么对,low);
胡要运用协议 (思想),什么时候才需要利用协议 (开发状况)

  • 1.生上自己不思量做的事情,搞一个代理去管理,这时候要代理遵守了某个协议,就能变成自我代理.
  • 2.UIScrollView,监听UIScrollView滚动,这时候需要遵守UIScrollView协议
    注意点:代理一定要是记得实现方法.

8.UITabBarController控制器中view的内部结构

  • 其view内部的布局为一个专程存放子控制器View的View,和一个UITabBar条.
    注意:UITabBar的冲天为49.

UI基础考点

1.由此代码如何从定义控件? 并且简单的讲述下各个一个手续的理由?

  • 1.新建一个继承UIView的好像,(所谓自定义控件便是继承系统自带的控件写一个和谐的控件)
  • 2.在initWithFrame措施被补充加子控件(保证别人当外场不管是经过init还是initWithFrame创立都能填补加子控件,因为init主意中会调用initWithFrame
  • 3.在layoutSubViews法被设置子控件的frame(因为于InitWithFrame方法吃即控件尺寸可能没有值,所以测算不了分层控件的职位与尺寸,而当layoutSubViews方式,能够将到手上控件的尺码)
  • 4.资一个模属性,重写模型属性的set方法(保证在旁人当安数据的那么一刻不怕可以将到多少设置到相应的道岔控件上)

2.透过XIB如何由定义控件? 并且简单的叙述下各个一个手续的理?

  • 1.新建一个继承UIView的类,(所谓自定义控件便是继往开来系统自带的控件写一个团结之控件)
  • 2.新建一个xib文件(xib的文书称极好与类名一样)
  • 3.修改最外好控件的class为控件类名(只有改类名,当时候自从xib中出来的才是本身这种类型的控件)
  • 4.供一个型属性,重写模型属性的set方法(保证在旁人在设置数据的那一刻虽好以到数量设置及对应之旁控件上)

3.用一个属性引用UI控件的上为什么用weak?

  • 因为UI控件添加至大控件被然后,会产生强指针指为这对象.在搞一个性引用这目标,用弱引用就可以.

4.简述UITableView性能优化的法则?

  • 当滚动列表时,部分UITableViewCell会更换有窗口,UITableView会将窗口外的UITableViewCell放入一个靶池中,等待录取。当UITableView要求dataSource返回UITableViewCell时,dataSource会先翻此对象池,如果池中发生免采取的UITableViewCell,dataSource会用新的数目配置是UITableViewCell,然后回到给UITableView,重新显示到窗口中,从而避免创建新对象.

相关文章