[面试]字节跳动-懂车帝(iOS实习生)

今天是我人生中的第一次面试,很惨烈,iOS小菜鸟起飞没成功,还需努力加油~

【一面】

首先自我介绍,主要还是依据项目来问的~

1.iOS tableview是怎样实现的?

2.如何提高tableview 的流畅性?

3.内存语义(主要是我自己提到)有哪些语义、copy、为什么NSString 用copy?

copy 和mutablecopy的区别      深拷贝和浅拷贝

4.数组和链表的区别

5.atomic和nonatomic区别   设置atomic后是否是线程安全,为什么?

6.使用http的过程  get post的区别

7.view和layer的区别

8.controller的生命周期

9.怎么画的图?

10.纯代码与xib的差异性在哪?

1.开发效率

纯代码编写,界面越复杂,代码量越大,复杂度也随之上升;

使用xib,可以把界面布局相关的代码,属性设置的代码,迁移到xib上,修改了什么马上可以看到效果,所见即所得,界面开发速度快很多;使用xib中的autolayout,屏幕尺寸适配也方便得多。

2.可读性

代码越多,别人读起来越费劲,使用xib,界面层的代码大量减少,可读性极好

3.复用

纯代码可复用,xib比较难复用,有相同或相似界面,基本是复制一份过来修改,复用问题不大

4.版本管理

代码的版本管理比较清晰成熟,大家也用得比较顺。xib因为其为xml格式文件,可读性比较差,多人同时修改同一个xib文件时会引起冲突,并且难以合并。所以,做好一个或一系列相关界面使用一个xib,避免多人同时修改一个xib引起冲突

5.性能

纯代码的界面加载速度、运行速度是最快的,xib会稍微拉低性能,消耗更多内存,但这对多数普通界面来说,没有太大影响。需要极致的性能和速度的界面,才使用纯代码。

不管是纯代码还是xib,autolayout都不宜使用过多,超过60个,会引起卡顿。


链接:https://www.jianshu.com/p/35200d262e4b




【二面】也是关于项目的

1.蓝牙怎么实现的?

2.单例怎么实现?

3.面向对象的6大原则 单一性……

4.为什么使用蓝牙连接2个设备

5.有没有了解过其它的连接设备的技术

6.ios的基本框架、模式?





止步于二面      其他的不记得啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,214评论 0 12
  • 冰冷的心里住着一团火。 别人住不进,自己也出不来。 心中的怒火却随时爆发,让人不知所措。
    HAHABTY阅读 169评论 0 0
  • 时间渐渐走远了,不知道有多久没有写日记的心情了。突然发现时间过得好快,一天一天不知不觉就过去了。青春早已不再。突然...
    美丽玫瑰2012阅读 100评论 0 0
  • 我,爱在夜阑人静时,想起你。你过得好吗?会想起我吗?偶然地想起我。 你孩子快三岁了吧,她性格定然随你,温婉,宁静,...
    添一抹岚阅读 1,527评论 86 35