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,重新显示到窗口中,从而避免创建新对象.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,121评论 29 470
  • 我为什么要写这篇文章 自己归纳总结,为校招做准备 方便自己随时查阅,巩固记忆 予人玫瑰手有余香 一、简述iOS中U...
    DeepChafferer阅读 742评论 0 1
  • 1.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作...
    曾令伟阅读 1,042评论 0 10
  • 本人ios初学者,为自己学习方便,复制各位大神的学习性文章放在自己简书里,仅作为自己学习方便使用,如果作者疑此行为...
    bu再等阅读 1,960评论 0 7
  • 有没有遇到很想放弃的时候? 就像沙漠中的海市蜃楼,黎明前看不见的启明星,风吹起的泡泡,绚烂而不真实。事实和理智告诉...
    凡绿阅读 165评论 0 0