美文网首页
2018年部分iOS面试题收集

2018年部分iOS面试题收集

作者: 落叶情思 | 来源:发表于2018-05-07 23:05 被阅读32次

    1.前言

    2017年的12月19日,原在万达工作的我接到部门老大的电话(嗯,这大概是我在万达不到两年时间换的第5个老大),然后HR面谈,然后我就从首富的公司被裁了,然后就没有然后了。。。。

    2.被裁后面了几家公司,都被pass了,所以痛定思痛,之后花了一个月时间看数据结构,算法,刷题,然后回家过年,到了18年3月,苦于手中没粮的痛苦,本人一边复习一边疯狂投简历,一个月的找工作,让我无语凝噎。

    3.居安思危,永远要保持自己能够有着能够跳槽的实力,这是我找工作三个月的最大感触。

    如下,是我收集以及遇到的各个公司的面试题,部分见解是我写的,不足之处,敬请谅解:

    1.百度面试题目

    一面二面

    1.UIbutton的父类层级以及各层级的主要功能

    3.OC消息转发的整个流程

    4.项目的整个框架(手动画出来)

    5.事件响应 画图说出响应的点

    6.定义一个Min宏

    三面

    2.求两个对列交叉后的倒数第k个节点

    3.同事间起就某个技术有争执怎么处理

    2.哔哩哔哩面试

    1、UIWebView相关:

    开发时候一些注意点。JS代码注入时机。对UIWebView的优化。

    http://blog.csdn.net/yu280265067/article/details/73379145

    2、多线程在项目当中的用到的地方。

    3、锁,代码块锁的线程安全问题。

    4、请求加密

    5、项目当中对于非Crash的问题(例如卡顿,卡死等)捕捉定位

    http://www.cocoachina.com/ios/20161101/17903.html

    http://blog.csdn.net/quanqinyang/article/details/68922847

    6、长链接

    http://www.cocoachina.com/ios/20160602/16572.html

    iOS后台如何保持socket长连接和数据传输:https://www.jianshu.com/p/a33835598e5d

    1、cpp数据结构

    2、dequeue的底层实现

    3、vector的实现

    4、ffmpeg:

    FFmpeg官网:http://www.ffmpeg.org

    FFmpeg doc :http://www.ffmpeg.org/documentation.html

    FFmpeg wiki :https://trac.ffmpeg.org/wiki

    FAQ

    Thanks!

    FFmpeg基础:http://wenku.baidu.com/view/296eefcaf90f76c661371af1.html

    原帖地址:http://derekzhan.iteye.com/blog/1989274

    iOS开发技巧之:FFmpeg的使用一

    http://javapyer.iteye.com/blog/1989274

    原理:通过ffmpeg对视频进行解码,解码出每一帧图片,然后根据一定时间播放每一帧图

    在iOS中使用FFmpeg命令

    https://www.jianshu.com/p/c236287e71ec

    实现功能

    代码地址https://github.com/QinminiOS/FFmpeg/

    * 图片、声音合成视频。

    * 视频编码转换。

    * 视频加水印。

    * 视频滤镜。

    3.沪江

    1.NSLock的底层实现原理

    2.自旋锁和NSLock的区别

    3.互斥锁与信号量的区别

    4.NSSet,NSArray,NSDication的底层实现

    5.单链表怎么寻找中间的节点

    6.TCP为什么是三次握手而不是两次

    7.HTTP的传输层是什么协议

    8.ios最多的http连接数是哪个范围

    9.cookie有哪些属性 

     name path expireDate domin url  commentUrl

    10.对称加密和非对称加密原理

    11.iOS 引用外部静态库(.a文件)时或打包.a时,Category方法无法调用。崩溃

    12.NSRunloop 

    4.今日头条

    1.二叉树有几种遍历方法,层次遍历实现

    3.NSThread在哪种情况必用

    4.NSOperation自定义怎么实现并发

    5.GCD queue和线程有什么关系和区别

    6.手动实现set方法retain

    7.怎么解决NSTimer的循环引用问题

    8.ARC在运行期做了哪些优化

    9.NSNotification接收消息是在哪个线程

    10.hitTest遍历逻辑

    5. 2345

    1、iOS MD5和base64加密区别

    http://blog.csdn.net/zdp072/article/details/30754955

    一. 简述

    MD5: 全称为message digest algorithm 5(信息摘要算法), 可以进行加密, 但是不能解密, 属于单向加密, 通常用于文件校验

    Base64: 把任意序列的8为字节描述为一种不易为人识别的形式, 通常用于邮件、http加密. 登陆的用户名和密码字段通过它加密, 可以进行加密和解密.

    2、解决“多个UITableView的时候不能点击状态栏回到顶部”问题

    http://blog.csdn.net/zz1732818683/article/details/32129377

    解决办法:不要让这些UITableView同时visible,一个时间内只让其中一个visible就行了。

    可以设置:tableview1.scrollsToTop = NO;tableview1.scrollsToTop = YES;

    或者:tableview1.hidden = NO;tableview1.hidden = YES;

    3、OC跟Swift的协议有什么不同?

    直接用Swift的协议,是不能实现可选协议的。你要实现一个protocol就必须实现它所有的方法。

    swfit如果想实现可选方法,那么就需要在定义的协议前面写上@objc。

    4、写代码:多个数组合并排序。(加分项:如果数组长度有大有小,怎么优化代码使得效率更高)

    多线程是否共享堆栈 请说出你的理由

    前面问项目经验  runloop runtime内存结构 计算机原理 操作系统相关的比较多

    还有进程主要有什么内容  程序,PCB,数据

    还问要给系统的一个进程发送消息怎么发 为什么分配了唯一的进程ID还要分配端口号

    还有一道题,寄存器变量有啥用

    快速的读取,速度快,容量小,提高运行效率

    6.爱奇艺

    1.算法题:设计一个人机对战的五子棋算法

    2.Ⅰ(1)、Ⅱ(2)、Ⅲ(3)、Ⅳ(4)、Ⅴ(5)、Ⅵ(6)、Ⅶ(7)、Ⅷ(8)、Ⅸ(9)、Ⅹ(10)、Ⅺ(11)、Ⅻ(12)、XX(20)、XXX(30)、XL(40)、L(50),C(100),D(500),M(1000)。以此类推,写一个阿拉伯数字转罗马数字的算法。

    3.动态绑定weak属性怎么实现,讲的是动态关联?

    4.CADisplayLink原理及fps计算算法

    CADisplayLink其实就是一个timer,只不过他是在每次频率刷新的时候调用对应的selector,fps可以通过CADisplayLink对应的target得到对应的时间戳的差值,然后与1相除。

    5.block和delegate的区别和优点缺点

    6.Copy的使用方法,在字符串和数组类型中分别有哪些种情况?

    7.runloop的使用方法以及如何在程序中切换mode?

    8.循环引用在那种情况下会发生,block的存储结构是什么样的?block的各个部分存储在内存的哪个区域

    9.GCD代码的判断执行结果(他们写代码,你来说执行结果,主要是死锁的判定)

    10.你在做项目中,哪一件或那些事情你感觉做的非常有成就感,为何?

    11.你们是如何定位线上的crash,以及你们是如何定位一些比较奇怪的crash的。

     12.聊架构:RN资源加密问题,RAC,MVVM

     13.内存@property

    14. id和nsobject指针的区别

     15.富文本 主要基于IM 的文本图片表情视图的展现

     16. async display kit离屏渲染

     17. promise kit

     18. gcd

     19.单例  手写代码实现

     20. arc mrc引用技术原理 以及 使用场景  并尝试用代码模拟实现

     21. KVO KVC实现  KVC针对interface成员赋值

     22. NSInvokation 

     23.动画组合动画 和分开动画区别, 动画使用CGPath 画出特定动画图案 以及代码

    CGMutablePathRef path = CGMutablePathCreate();

    CGMoveToPoint(path,NULL,200,200);

    CGAddCurveToPoint(path,NULL,100,300,200,230,400,400);

    ani.path = path;

    CGPathRelease(Path);

     24. NSRunLoop对UI的响应

     26. jsbride 

     27.手动实现引用级数 写代码

     28.手动实现快速排序

     29. oc类信息存放在哪里

     30.如何计算app帧率 

    相关文章

      网友评论

          本文标题:2018年部分iOS面试题收集

          本文链接:https://www.haomeiwen.com/subject/riebrftx.html