关于我:
Hello,大家好,我是西瓜视频一枚iOS开发工程师。去年秋招有投递过30多家企业,最终也是面试近20家,成功拿下8个Offer。最终经过筛选,我选择了非常nice的西瓜视频团队。近期我将发布“iOS秋招面经系列”文章,将我在面试中遇到的问题分享给大家。
希望大家在阅读完一系列文章以后,可以顺利的拿到offer。
当然,如果你也想来西瓜视频团队,欢迎在文章下方的链接/二维码/邮箱/牛客私信投递简历。
欢迎长期关注本系列文章,我也会在工作空余补充每篇面经的参考答案。
老虎证券三面面经
一面
- 简述@property,使用场景
- 说一下block,使用过程中会出现什么问题,UIView animation为什么不会造成循环引用(可参考三种类型的block)
- KVO,KVC,delegate的不同应用场景
- KVO和setter方法的区别,(用setter监听就够了,为什么还要使用KVO,怎样手动触发KVO)
- 写一个单例模式,讨论Swift下的单例模式
- 简述IGListKit (目前了解到大部分项目都在接触这个框架,可以了解一下他的设计模式以及核心算法原理)
- GCD栅栏函数的场景
- Swift下 ? ! 的使用场景
- Swift下闭包的写法,逃逸闭包和普通闭包的区别
- Swift下闭包如果避免循环引用,weak和unowned的区别
- Swift中访问修饰符有哪些,怎么使用
- -----------
- 算法1. 跳台阶问题(一次只能跳一个或者两个)
- 算法2. 统计一个数组中出现次数最多的数字(数组长度不定,每个数在0-100之间)
二面
- C语言或者CPP中内存管理是怎么实现的,有没有类似ARC这种自动管理 (有余力的同学推荐也了解一下Java的垃圾回收机制),什么是智能指针
- 什么是长连接,和短连接区别是什么,怎么实现长连接
- 什么是线程池
- C和OC的区别,怎么理解OC是动态语言
- 描述工厂模式,在UIKit中有哪些地方用到了工厂模式 (也可以了解一下OC中类簇的概念)
- UIButton有哪些父类,分别给UIButton提供哪些功能 (可以了解一下事件响应链和UIKit中继承关系)
- - - - - - - - - -
- 算法1. 实现一个字符串的翻转,例如hello world i love china 变成 china love i world hello,不能使用split
三面
- 介绍近期做了哪些东西,iOS开发的Extension的使用
- delegate和block的应用场景,自己实现两个类,分别描述delegate和block的使用。(手写代码,基本考察delegate的weak,block的写法,copy修饰,使用response判断是否实现了协议方法,判断block是否为空等)
- - - - - - - - - - -
- 算法1. 给定一个int数,实现数的翻转123变成321
- 算法1.2 如果这个数是负数,或者这个数翻转后越界要怎么处理
- 算法2. 给定一个字符串,判断他是否是一个合法的IP地址(输入内容没有限制,IP符合标准就行,不用考虑保留IP的问题)
- 算法2.2 如果用Swift实现呢(split的应用之类快捷的方法)
全部评论
(0) 回帖