前言:今日头条的iOS高级开发岗第三面,下面记录这次面试的回忆以作日后复习。
一、自我介绍
简单介绍一下你自己吧
- 解析:简单介绍下自己的名字,教育背景,现在的工作,做过的项目
二、自我介绍衍生的口头问题
讲讲下你在你项目中做过的优化或者技术难点
- 解析:介绍了自己封装的一个集picker,文本域的灵活展开的表视图。这个视图的数据源是json,怎么转成模型数组的?这个cell有哪些类型?展示的怎么区分这些cell?这里面有用过复用机制吗?这些cell有实现过多重继承吗?
- 题外话:这种问题最好各人自己找问题讲讲,不多,提前准备一个你项目中非常擅长并熟悉的点,即可。
三、编程题:实现以下功能
- 编写一个自定义类:Person,父类为NSObject
- 解析:头文件这样写
@interface Person:NSObject
- 该类有两个属性,外部只读的属性
name
,还有一个属性age
- 解析:
name
的修饰符nonatomic
,strong
,readonly
。age
的修饰符nonatomic
,copy
。
- 为该类编写一个初始化方法
initWithName:(NSString *)nameStr
,并依据该方法参数初始化name
属性。
- 解析:头文件声明该方法,实现文件实现该方法
- 如果两个Person类的name相等,则认为两个Person相等
- 解析:重写
isEqual
,这里面涉及到了哈希函数在iOS中的应用。
四、由编程题衍生的口头题目
4.1
题目: 怎样实现外部只读的属性,让它不被外部篡改
解析:
网友评论