戴维营教育ios笔试题一
戴维营教育原创文章,转载请注明出处。我们的梦想是做最好的iOS开发培训!
笔试是招揽人才的第一道关卡(简历筛选除外),它能够较全面的考察一个人对基础知识的掌握程度以及解决问题的能力。更多iOS笔试面试题请上潜心俱乐部。
1. 数组NSArray用的是什么排序算法?
答:快速排序
2. 用Storyboard连接的属性(IBOutlet)为什么可以是weak类型的。(Where?)
答:在其它地方有强引用,因此没有必要再去手动管理内存了。
3. static的作用域和生命周期是什么?
答:1. 该static类型变量所在的作用域(定义它的作用域,静态局部变量)。2. 全局静态变量作用域为从定义的位置开始到所在文件结尾。3. 生命周期为整个程序的运行期(当前进程启动到进程结束)。
4. Objective-C中是否有静态成员变量。
答:否,没有。
5. 为什么有的网页解析后中文是乱码,用的UTF-8?
6. main函数的两个参数是做什么用的?
答:1. argc表示输入的命令行参数个数(最前面的参数为程序名)。2. 存放输入参数的字符串数组。
7. 什么是类簇?
8. id、NSObject *以及instancetype有什么区别?
答:instancetype只能用于返回值,编译器能够推导具体的类型。id和NSObject *在Cocoa或者Cocoa Touch环境下没有任何区别,但是id能表示的范围更广,因为Objective-C的类并不一定需要有父类(OBJC_ROOT_CLASS)。
9. 三个网络请求的框架(NSURLConnection、NSURLSession和AFNetworking)的使用。
10. 类的属性,如果使用copy,注意可变类型复制后会产生不可变的对象。
11. KVO/KVC中的key一定要是属性吗?
答:不一定,key是一个名字,它的查找顺序为方法 > 实例变量,比如name名字的查找顺序为name方法/setName: > _name > name。
12. frame和bounds的区别是什么?
答:frame和bounds都是CGRect类型的属性。其中frame是相对于父视图的坐标系表示的,而bounds相对于本身的坐标系。大部分情况下bounds的原点(origin)为(0,0)。
13. iOS应用沙盒的结构是什么样的,哪些目录可以写?
答:Documents、tmp、Library/Caches可写,xxx.app(main bundle)只读。NSHomeDirectory()、NSSearchPathForDirectoriesInDomains、[[NSBundle mainBundle] bundlePath]等。
14. 如何访问对象的私有成员变量?
答:可以通过KVC访问。
15. unsigned int和NSUInteger有什么区别?
16. 归档和writeToFile:automically:的区别是什么?
答:
17. 对象初始化时,为什么要调用父类的初始化方法?
答:1. 因为父类中可能包含有一些私有的资源,需要进行初始化。2. 代码重用。