一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2529|回复: 5
收起左侧

Airbnb 1/11 Onsite [Mobile-iOS]

[复制链接] |试试Instant~ |关注本帖
dispatchasync 发表于 2016-1-14 04:36:42 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 本科 全职@Airbnb - 内推 - Onsite |Failfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
iOS的onsite面经少的可怜,这里希望能帮助到大家。
.1point3acres缃


前两轮是behavioral, 比较放松。

【第三轮 iOS】: Implement a UIImage Category that supports LRU Image Cache with cache size of 10 images [only memory level cache]
要理解Category,其次是LRU Caching。这个问题应该会用到:

- download an image from an URL without blocking the main thread,因为这道题给你的只有一个url,然后面试官说了不能block main thread.-google 1point3acres
- dispatch to another queue for async image fetching, then return to main thread for the rest of the execution.
- NSMutableDictionary for caching, NSMutableArray for LRU (也可以用别的实现)
- Singleton pattern,像[YouCacheManager sharedManager],这样整个project只需要initialize一个manager object就行,当时我这么写了之后面试官马上反应:here you go!. Waral 鍗氬鏈夋洿澶氭枃绔,
- custom block, 因为code已经在async block里了,所以我当时写了一个completion block来传回下载好的或是从cache里找出来的image

写完了之后面试官说可以过了,我们来聊天 :)
如果对这题还有疑问的话,可以谷歌一下SDWebImage,这道题其实就是写一个屌丝版SDWebImage的Caching功能

【第四轮 iOS】Imagine UITableView and UICollectionView haven't been invented yet, implement a Horizontal Table View that recycles memories..鏈枃鍘熷垱鑷1point3acres璁哄潧
之前我在别的面经上看到过这题,但那个面经没说不能直接subclass UITableView :( 我原本以为horizontal table view不就是把正常的UITableView旋转90度,然后每个cell再转负90度,就能达到理想的效果了... 面试官说this is not the prefered way, you should start by subclassing UIScrollView 好吧,那这题突然一下子复杂了好多,可以分为这几布. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

- create your own dataSource protocals: 就像UITableView 一样,你需要numberOfRows(这里变成了columns)和cellForRowAtIndexPath(cellforColumn)等等功能让你的dataSource去完成
- initialization: 先别管怎么recycle memory, 首先要把屏幕里能装下的cells显示出来
- get call back when user scroll your view: 为recycle memory做准备。因为我们subclass的已经是一个UIScrollView了,所以可以直接delegate给自己,然后得到scrollViewDidScroll的call back
- recycle memory: 当有cells被滑动到屏幕外边了之后(通过上一步来判断),把这些cells装到一个queue上,然后新的cells来重复使用这个queue里的memory, 原理和UITableView一模一样。不过当时面试官说不用queue这么复杂了,这里用一个set就行。

当时写到第四步时,时间就到了,面试官问我如果还有时间多的话,接下来你会怎么写,我说了说。

【第五轮 算法】考过无数遍的Text Justification, 一遍过

这里还需要说明的一点是:Airbnb包括很多其他公司,他们的iOS Team很小,Airbnb只有15人,所以他们对你的expectation会很高。虽然iOS申请的人相对少,但同时bar也会很高。





评分

2

查看全部评分

本帖被以下淘专辑推荐:

windyL 发表于 2016-2-8 10:38:10 | 显示全部楼层
请问楼主最后拿到offer了吗?第五轮算法是用什么语言写的?
回复 支持 反对

使用道具 举报

Jason_chen 发表于 2016-3-10 00:22:57 | 显示全部楼层
求问LZ应届生面iOS是不是都不仅仅考算法?我听说FLAG这种统一面算法过了再选组?
回复 支持 反对

使用道具 举报

hello2pig 发表于 2016-5-7 00:44:18 | 显示全部楼层
卧槽好难啊 楼主怎么学的iOS?
回复 支持 反对

使用道具 举报

lirovise 发表于 2016-6-9 09:45:25 | 显示全部楼层
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
. 鍥磋鎴戜滑@1point 3 acres
想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
回复 支持 反对

使用道具 举报

lirovise 发表于 2016-6-9 09:46:58 | 显示全部楼层
什么鬼...不小心就发了placeholder.
看来airbnb的ios面试跟其他SE面试很不一样啊...都是这么接地气的ios问题,感觉更难准备..
看楼主发帖那么云淡风轻,想必是过了~
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 04:54

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表