面试题转载
网络相关的:项目里面使用到什么网络库,用过ASIHTTP库吗
断点续传怎么实现?需要设置什么?
HTTP请求过程;
在杭州HTTP请求服务器响应快,可能离服务器距离近,而在深圳访问就很慢很慢,会是什么原因?如果用户投诉,怎么分析这个问题?
HTTP请求的哪些方法用过?什么时候选择get、post、put?
TCP建立连接的过程,断开连接的过程,为什么是四次握手?
项目里面的数据存储都用了哪些?知道iOS里面有哪些数据存储方法?什么时候该用哪些方法存储?
内存泄露的几种情况分析;(简历上写的解决了一些内存泄露的问题)
问题:有A B C D E五个类,都要监听登录和注册的通知,发通知给它们五个控制器麻烦,就写了一个单例类,负责发通知,需要接受通知的就实现delegate,因为单例类里面的数组引用了这几个VC,导致不释放,怎么解决?类似NSTimer,不知道什么时机移除VC(可以从这方面考虑:NSNotificationCenter,直接在dealloc里面remove掉就行)因为VC被引用,所以不会执行到dealloc方法,先看下NSNotificationCenter是怎么实现的吧
发布出去的版本,怎么收集crash日志?不使用bugly等第三方平台或者这些第三方平台是怎么收集crash日志的?
在block里面使用_property会造成循环引用吗?怎么解决?除了使用self->_property,可以使用valueforkey来访问吗 在block里面可以修改它的值吗setvalueforkey?可以修改它的值,可以用valueforkey来解决,显式的的使用self,block外先持有self的弱引用。
说一下runtime?为什么OC里面是发消息,而C/C++是函数调用?
说下OC发消息的过程
什么是OC对象?union是OC对象吗 block是OC对象吗
每个 Objective-C 对象都是指向某块内存数据的指针,所以在声明变量时,类型后面要跟一个“*”字符:Class的定义:一个结构体
Union不是OC对象
block是特殊的OC对象,定义是个结构体类型,其他OC对象分配在堆上,block是分配在栈上。
id是什么类型?是一个指针类型的,可以指向任意OC对象类型的通用对象类型。定义也是结构体。
解决过的最精彩的crash问题?
自定义一个类,有两个方法,一个是以new开头的,另一个不是以new开发的,方法里面都是alloc init方法,这两个方法有什么不同?引用计数变化?ARC下,编译器会插入什么语句?
ARC和MRC的本质区别是什么?
NSThread,GCD,NSOperation相关的。开启一条线程的方法?线程可以取消吗?
子线程中调用connection方法,为什么不回调?因为没有加入runloop,执行完任务就销毁了,所以没有回调。
autorelease变量什么时候释放?手动添加的是大括号结束的时候释放,系统自动释放是在当前runloop循环结束的时候。
那子线程中的autorelease变量什么时候释放?
子线程里面,需要加autoreleasepool吗
GCD和NSOperation的区别?
项目里面遇到过死锁吗?怎么解决?数据库访问本来就是线程安全的,不会造成死锁啊。什么是死锁?
Viewcontroller的生命周期?
在init方法里面,设置背景颜色,会生效吗 会生效。为什么会?
WWDC2016公布了哪些新特性?对苹果系列的最新特性有关注吗
为什么做iOS开发,不做安卓开发?
C++相关的。什么是虚函数?虚函数是怎么实现的?什么是多态?
为什么类的析构函数设置成虚函数?为什么构造函数不设置成虚函数?
如果父类有一个成员变量A,子类有A,B两个变量,父类指针指向了子类,父类执行delete方法,子类的变量会被释放吗?怎么才能被释放?执行子类的delete方法,两个变量会被释放吗?
数据结构与算法相关。知道哪些数据结构?线性表(具体点 数组)连接、栈、队列、二叉树、堆。
iOS中哪里用到栈了?开发过程中哪里用到链表了?栈的特点,链表的特点
什么是完全二叉树?堆是什么数据结构?
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
向量和链表的区别?什么时候选择vector?什么时候选择使用链表?
100个数,找出其中重复的数?
10个数,找出其中最大数和最小数,没有值相等的。
归并排序的过程
堆排序的过程、快排的过程
你最出色的是哪方面?iOS开发,iOS开发的哪一方面?
作者:sonialiu
链接:http://www.jianshu.com/p/92653db0e76a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
网友评论