要出发公司是一家怎样的公司

招聘高峰期来了,大家都非常积极地准备着跳槽,那么去一家公司面试就会有一堆新鲜的问题,可能不会,也可能会,但是了解不够深。本篇文章为群里的小伙伴们去 要出发 公司的笔试题,由笔者整理并提供笔者个人参考***。注意,仅供参考,不代表绝对正确。
参考***不唯一,大家可以根据自己的理解回答,没有必要跟笔者的一样。参考笔者的***,也许给你带来灵感!
1、编程规范问题
这题看不清楚,不过可以看得出来是编程规范问题。所以呢,笔者也就没有办法说明哪些不合理了。不过笔者曾经为公司的出过一个编程规范文档,后来整理成文章GIF图分享给大家。
参考***:
仅供参考:标哥的编码规范
2、请写出UIViewController的完整生命周期
参考***:
下面是笔者通过打印,先出现ViewController,然后在点击ViewController上的按钮时,模态弹出了一个纯代码HYBViewController,其打印如下:
-[ViewController initWithCoder:]-[ViewController loadView]-[ViewController viewDidLoad]-[ViewController viewWillAppear:]-[ViewController viewDidAppear:]// present HYBViewController-[HYBViewController initWithNibName:bundle:]-[HYBViewController init]-[HYBViewController loadView]-[HYBViewController viewDidLoad]-[ViewController viewWillDisappear:]-[HYBViewController viewWillAppear:]-[HYBViewController viewDidAppear:]-[ViewController viewDidDisappear:]
生命周期如下:
xib/storyboard:-initWithCoder:,而非xib/storyboard的是-initWithNibName:bundle:然后-init
-viewDidLoad
-viewWillAppear:
-viewDidAppear:
-viewWillDisappear:
-viewDidDisappear:
注意,当从ViewController进入到HYBViewController控制器时,注意出现顺序如下:
-[ViewController viewWillDisappear:]
-[HYBViewController viewWillAppear:]
-[HYBViewController viewDidAppear:]
-[ViewController viewDidDisappear:]
在HYBViewController完全出现后,才会调用前一个控制器的完全消失。像这种要不同控制器之间导航条隐藏与显示控制问题,就需要特别注意其生命周期的顺序。
请写出有多少有方法给UIImageView添加圆角?
参考***:
最直接的方法就是使用如下属性设置:
imgView.layer.cornerRadius = 10;// 这一行代码是很消耗性能的imgView.clipsToBounds = YES;
好处是使用简单,操作方便。坏处是离屏渲染(off-screen-rendering)需要消耗性能。对于图片比较多的视图上,不建议使用这种方法来设置圆角。通常来说,计算机系统中CPU、GPU、显示器是协同工作的。CPU计算好显示内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区。
简单来说,离屏渲染,导致本该GPU干的活,结果交给了CPU来干,而CPU又不擅长GPU干的活,于是拖慢了UI层的FPS(数据帧率),并且离屏需要创建新的缓冲区和上下文切换,因此消耗较大的性能。
给UIImage添加生成圆角图片的扩展API:
- (UIImage *)hyb_imageWithCornerRadius:(CGFloat)radius {CGRect rect = (CGRect){0.f, 0.f, self.size};UIGraphicsBeginImageContextWithOptions(self.size, NO, UIScreen.mainScreen.scale);CGContextAddPath(UIGraphicsGetCurrentContext(),[UIBezierPathbezierPathWithRoundedRect:rectcornerRadius:radius].CGPath);CGContextClip(UIGraphicsGetCurrentContext());[selfdrawInRect:rect];UIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();}
然后调用时就直接传一个圆角来处理:
imgView.image = [[UIImageimageNamed:@&test&]hyb_imageWithCornerRadius:4];
这么做就是on-screen-rendering了,通过模拟器-&debug-&Color Off-screen-rendering看到没有离屏渲染了!(***的小圆角没有显示了,说明这个不是离屏渲染了)
在画之前先通过UIBezierPath添加裁剪,但是这种不实用:
- (void)drawRect:(CGRect)rect {CGRect bounds = self.[[UIBezierPathbezierPathWithRoundedRect:rectcornerRadius:8.0]addClip];[self.imagedrawInRect:bounds];}
通过mask遮罩实现
这里不细说了,个人感觉不如第二种好用、通用
若有更多,可以在评论中指出~
4、请描述事件响应者链的工作原理
参考***:
iOS使用hit-testing寻找触摸的view。 Hit-Testing通过检查触摸点是否在关联的view边界内,如果在,则递归地检查该view的所有子view。在层级上处于lowest(就是离用户最近的view)且边界范围包含触摸点的view成为hit-test view。确定hit-test view后,它传递触摸事件给该view。
官方小例子事件响应者链如下图所示:
触摸点在view A中,所以要先检查子view B和C。
触摸点不在view B中,但在C中,所以检查C的子view D和E。
触摸点不在D中,但在E中。View E是这个层级上处于lowest的view的边界范围包含触摸点,所以它成为了hit-test view。
Hit-test view是处理触摸事件的第一选择,如果hit-test view不能处理事件,该事件将从事件响应链中寻找响应器,直到系统找到一个处理事件的对象。若不能处理,则就有事件传递链了,继续看下面的事件传递链。
事件传递链如下图所示:
initial view若不能处理事件,则传到其父视图view
view若不能处理,则传到其父视图,因为它还不是最上层视图
这里view的父视图是view controller的view,因为这个view也不能处理事件,因此传给view controller
若view controller也不能处理此事件,则传到window
若window也不能处理此事件,则传到app单例对象Application
若UIApplication单例对象也不能处理,则表示无效事件
initial view一直传递直到最上层view(原话:A view passes an event up its view controller’s view hierarchy until it reaches the topmost view.)
topmost view传递事件到它所在的控制器(原话:The topmost view passes the event to its view controller.)
view controller传递事件到topmost view的父视图,重复前三步,走到到达root controller(原话:passes the event to its topmost view’s superview. Steps 1-3 repeat until the event reaches the root view controller.)
由root控制器传递事件到window(原话:The root view controller passes the event to the window object.)
若window也不能处理此事件,则传到app单例对象Application
若UIApplication单例对象也不能处理,则表示无效事件
为了解答这个小题目,翻阅了官方文档,由于内容较多,这里不说那么多,若要了解更多,参考官方文档吧: Event Handling Guide for iOS
5、如何避免使用block时发生循环引用
参考***:
关于block循环引用问题是非常常见的,但是很多人没有深入研究过,xcode没有提示警告就以为没有形成循环引用了。笔者也见过很多高级iOS开发工程师的同事,使用block并不会分析是否形成循环引用。
推荐阅读 iOS Block循环引用精讲
6、请比较GCD与NSOperation的异同
参考***:
相同点:GCD和NSOperation都是苹果提供的多线程实现方案。
不同点:GCD是轻量级的纯C写的多线程实现方案,使用起来非常方便,在开发中大量使用,但是对于取消和暂停线程就比较麻烦些。而NSOperation是面向对象的,兼容KVO,对于取消和暂停任务是非常容易的。
更详细地,推荐阅读:iOS图解多线程
7、请写出NSTimer使用时的注意事项(两项即可)
说到NSTimer这个定时器类,要使用好它,还得了解Run Loop,因为在不同的run loop mode下,定时器不都会回调的。
mode主要是用来指定事件在运行循环中的优先级的,分为:
NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默认,空闲状态
UITrackingRunLoopMode:ScrollView滑动时会切换到该Mode
UIInitializationRunLoopMode:run loop启动时,会切换到该mode
NSRunLoopCommonModes(kCFRunLoopCommonModes):Mode集合
苹果公开提供的Mode有两个:
NSDefaultRunLoopMode(kCFRunLoopDefaultMode)
NSRunLoopCommonModes(kCFRunLoopCommonModes)
如果我们把一个NSTimer对象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主运行循环中的时候, ScrollView滚动过程中会因为mode的切换,而导致NSTimer将不再被调度。当我们滚动的时候,也希望不调度,那就应该使用默认模式。但是,如果希望在滚动时,定时器也要回调,那就应该使用common mode。
如果想更深入地了解RunLoop,请参考iOS之Run Loop详解
如果想要销毁timer,则必须先将timer置为失效,否则timer就一直占用内存而不会释放。造成逻辑上的内存泄漏。该泄漏不能用xcode及instruments测出来。 另外对于要求必须销毁timer的逻辑处理,未将timer置为失效,若每次都创建一次,则之前的不能得到释放,则会同时存在多个timer的实例在内存中。
参考***:
注意timer添加到runloop时应该设置为什么mode
注意timer在不需要时,一定要调用invalidate方法使定时器失效,否则得不到释放
8、说说Core Animation是如何开始和结束动画的
笔者不是很清楚题目的真正要求,是想知道核心动画的哪些知识点。如何开始和结束动画,这核心动画有很多种,每种动画还有很大的区别。
参考***:
动画的开始和结束都可以通过CAMediaTiming协议来处理,核心动画的基类是遵守了CAMediaTiming协议的,可以指定动画开始时间、动画时长、动画播放速度、动画在完成时的行为(停留在结束处、动画回到开始处、动画完成时移除动画)。
请参考笔者以前给公司所有团队分享的知识点:说说Core Animation
学习完这份笔试题的相关知识点,再整理成本篇文章,真心是累!且看且珍惜吧!
若支持笔者,不防打赏表示表示~
又一个夜深人静了~风儿挺大的!打一把梦三准备sleep~
Swift/ObjC技术群一
群一若已满,请申请群二
Swift/ObjC技术群二
群二若已满,请申请群三
Swift/ObjC技术群三
群三若已满,会有提示信息
关注微信公众号
iOSDevShares
关注微信公众号,会定期地推送好文章
关注新浪微博账号
关注微博,每次发布文章都会分享到新浪微博
关注标哥的GitHub
CoderJackyHuang
这里有很多的Demo和开源组件
进一步了解标哥
如果觉得文章对您很有帮助,可捐助我!
版权声明:本文为【标哥的技术博客】原创出品,欢迎转载,转载时请注明出处!
最新教程周点击榜
微信扫一扫据群众举报,经缜密侦查,共查获嫌疑人数百名。
女子在郑州高速上被踹下车,哭诉一年被打二十次。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  陆威说,他特别喜欢看兵器的发展史,着迷于其洗尽铅华背后的淳朴本质。创业也是一样,当人每每被逼到绝境之处,突然,道理也就参透了。
  在陆威看来,他的骨子里流淌着互联网创新的血液――不甘平凡,不甘每日重复刻画着同样的设计图纸;他享受在一个自由开放的领域中,不断生成新的想法来充实这个体系,在本没有道路的互联网世界开辟属于自己的征程。
  初尝大起与大落
  2000年,互联网时代的新纪元,当时还在设计院工作的陆威便尝试接触互联网,创办了与自己专业相关的土木工程行业网站,成为了中国名副其实的第一批“老站长”。要知道,当时还是新浪、搜狐、网易三足鼎立,运用ADSL拨号上网的时代。同年,他在互联网上发现了另一个相似的站点,从而认识了至今仍与他并肩作战的人生知音――现任要出发周边游CEO,丁根芳。
  在谈到为什么在考高工之际,决定离开工作9年的事业单位进行互联网创业,陆威并没有解释太多,只提到在创业最艰难的时刻,虽然非常痛苦,但从不曾放弃。
  2003年底,在丁磊的一次校园招聘演讲结束后,陆威与丁根芳有幸与丁磊接上了头。网易的光环很快吸引了陆威与丁根芳的加盟。他们的网站并入了网易,并独立成企业应用事业部。大公司的福利和高薪让陆威很满意,一切看似顺风顺水,前途无量。
  2008年,在积累了一定能力与资源之后,陆威与他的创业团队又开始萌生了离开网易的想法。很快,他们决定辞职创业。时至今日,陆威仍然清晰记得离开网易时,丁磊给他们的忠告:“第一,单独出去干要面临的压力和挑战是巨大的!第二,自己创业,一分钱要掰成两半花,不然会很难做。”
  离开网易后,陆威回忆说:“我们带出了很多大公司的习惯,而这些习惯,带给了我们负面的影响――租漂亮的写字楼、买最好的办公产品。大公司的光环,让他们自己出来单干后,感到极其的不适应,自创业第一天起,就经历了连续20个月的亏损。这20个月的经历,完全击溃了陆威前十年的心血,公司连续亏损,无以为继,当时的他与团队都走到了绝境。”
  第一次绝处逢生
  陆威回忆说,最难的时候痛苦到晚上半夜经常突然惊醒,翻来覆去地想解不开的结。每一次的加班都加到第二天早上天亮,伙伴们甚至都习以为常。回想起来永远都记得这样的感觉,这种感觉教会了我们步步为营,在后来的创业经历中我们变得越来越谨慎,敏感,避免了很多不必要的错误。
  不久之后,丁根芳与陆威定下了“下个月绝不再继续亏损”的目标,要知道,从连续亏损的情况下转为盈利绝不是这么简单的事情。但这个转机还是出现了。陆威说,丁根芳热爱汽车,乐于钻研,恰巧在其中发现了商机。当时汽车导航仪还不普及,毛利润很高,丁根芳尝试以每台400块左右的价格从深圳进货,再加价装到汽车上。第一个月卖了100多台,第二个月业绩翻了一倍,一下子,让公司又看到了生机。随后,他们携手在导航仪的基础上扩展品类和销售渠道,***营销成本提升之后,本来就是互联网老手的他们又开始进行网络销售,一边在淘宝上开店,一边建立自己的B2C商城。2010年时,公司营收攀升至两千多万,他们又一次获得了成功。但是用陆威的话说:“我们始终没有放弃心里的梦想,我们还是想做一个100年都经久不衰,全中国人民都要用到的刚需产品!”
  蜕变转型再遇绝境
  一次偶然的阳朔自驾游,开启了他与团队的另一个创业故事,当时有很多景区的客栈老板都在桥下、路边,用着最原始的方式招揽顾客,但从客户的角度来说,很难判断这些客栈的安全性和舒适性,于是他们就想到做一个客栈网上营销平台。说干就干,2010年下半年着手,第二年年初上线时,他们的平台就进驻了2000多家客栈供应商。
  陆威说,在要出发刚刚开始的时候,办公室的网线他和老丁自己接。用汽车用品团队盈利的钱养活“要出发”的团队。两个团队的办公室租在了一栋大楼里,紧挨着,面对面。老丁负责继续运营汽车用品的团队,而自己出来带“要出发”的团队。这其中,还有一段小插曲。这就要从“要出发”2011年获得的李开复博士创办的创新工场天使轮投资说起。陆威回忆说:“当时我们在成为投资对象前经历了无数次的‘群殴’和失败,但其中的一位投资人仍然不厌其烦向我们提出建议,与我们探讨如何突破关键点。后来在他的支持下,我们最终破例获得了投资。这段经历也让我意识到,优秀的团队才是创业的核心竞争力;好的项目和点子随时都能从头再来。一个好的团队,能够不断从策划到细节进行模拟,自我纠错,从而达至融会贯通;形成商业闭环。而这,也是我最想告诫现在创业的年轻人的。”
  网站刚开始的时候,想经营比较特殊的高端精品酒店,但是很快发现。面对供应商,他们完全没有议价能力,而消费者这边又迟迟没有响应,好不容易有人订房了,却发现精品酒店房间数量的稀缺又局限了消费者端的拓展。作为一个旅游资讯平台,他们没有办法定位消费者会选择东西南北中哪一个目的地,看好哪一家的客房。陆威说,在那个节点,他仿佛又感觉自己走入了绝境。
  调整策略扭亏为盈
  但是天无绝人之路,在无数次会议的争论和纠结后,“要出发”及时调整了战略,将80%的资源部署在了供应商拓展端。他说:“我要感谢我们BD的团队,每当我们看准了一个景区后,他们就以最快的速度把当地的供应商给谈了下来。这得益于他们在网易,在汽车用品创业过程中积累的经验和能力。度假景点的住宿与普通商旅住宿有很大的不同,我们歪打正着,与供应商直接接触,也为我们后期的节假日空房处理打下了良好的基础。”他还回忆说,调整策略后,公司很快扭亏为盈,第一次销量上百万的那个月,团队一起在办公室合了一个影,大家都开心得不得了!
  陆威将目前国内的旅游市场分为三类,第一类叫强景区――是指消费者愿意坐飞机从千里之外赶来游玩的。第二类叫弱景区――是指消费者愿意开车2个小时以上前来游玩的目的的。第三类叫微景区――如小区游泳池,城市体育馆等覆盖一小片区域的景点。而 “要出发”主打的就是北上广深周边的弱景区旅游项目,其主要的客户人群就是都市白领,上班族,这些消费者中75%都有孩子,平时工作很忙,节假日一定都想与家人孩子共聚天伦,但可惜的是他们想出去玩但不知道去哪儿,需求没有得到满足,出去玩的旅游产品种类也不丰富。夏日的海滩,冬天的温泉,没有人愿意重复去多次的,选择也受地域,气候所影响。所以“要出发”的BD锁需要做的,就是设身处地为他们想,怎么玩能开心,怎么玩更轻松。一天下来,他们最想要的就是孩子和家人的一句“开心”。
  “要出发”正高速扩张
  幸运的是,借助移动互联网和旅游的热潮,“要出发”正高速扩张,目前在全国已经开设近30家分公司,员工过千人;整合的供应商近4000个,覆盖华南、华东、华北、西南、西北、东北等160个城市。2012年,“要出发”很快拿到了创新工场的A轮投资,并于2013年底获得B轮800万美元融资,2014年9月再获红杉资本领投C轮3500万美元融资。今年3月底,其全国产品和技术体系全面升级,用户数、订单数和销售额继续保持几何级数增长。
  从专业的行业B2B平台,到贩卖车载电子产品的B2C贸易,再到如今成熟的B2C旅游资讯平台,骄傲的工程师们逐渐蜕变成了走在互联网前端的创业人。陆威与其他很多创业者一样,用一个个朴实的小故事复盘了他一唱三叹的创业经历。用他自己的话总结,互补互信的合伙人,绝处逢生的坚定信念或许是他成功最关键的两个因素。
欢迎举报抄袭、转载、暴力***及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
12294文章数
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬***
******:86-10-
***邮箱:关于我们_要出发旅行网公司介绍
广州酷旅旅行社有限公司请,注册账号立送30元现金券最近浏览公司简介要出发周边游,原称“要出发旅行网”,隶属于广州酷旅旅行社有限公司。该公司创立于2011年8月,专注周边旅游服务,致力打造涵盖“发现”、“选择”、“订购”各环节的一体化在线旅游平台。要出发提供的产品以城市“周边游”套餐服务为主,包含城市周边酒店、景区、美食三大板块,在线精品超过70,000个,已为数百万家庭提供7天×24小时保姆式服务。公司宗旨提高国人周末生活品质,专注周末出游,打造周边游一站式服务平台,为城市人提供“更简单、更专业、超预期”的周边游。公司成就成立五年,要出发周边游已经在全国26个省市设置了分公司,共有将近2000名员工,通过人工筛选的方式精选酒店、景点、餐饮等旅游必需产品并组合成独特、好玩的套餐,为超过千万用户提供了服务。发展历程&
要出发周边游服务辐射全国地图:2011年,广州酷旅旅行社有限公司成立,同年10月要出发周边游网站正式上线2012年,获得创新工场的天使轮和A轮投资共160万美元2012年,要出发周边游销售业绩超千万;获选“年度十大新锐旅游电子商务网站”2013年,销售业绩同比增长达到5倍以上;入选广东省旅游局全省旅游工作会议重点工作交流项目2013年,获得祥峰投资和创新工场共同投入的B轮投资800万美元2014年,获得红杉资本、天图资本、祥峰投资和创新工场共同投入的C轮投资3500万美元2015年,第一次包场大型***;同时,以广东为中心向外扩散,在全国范围内开展大型活动36场,订单量超过50万单;开展定制化自驾亲子业务;获选长隆集团“2015年度酒店业务优秀合作商”“2015年度卓越贡献五强奖”2016年1月,获得众信旅游、金鼎投资和中信建投资本等投资机构共同投入的D轮投资5.5亿人民币,这也是目前国内周边游领域最大单笔投资华南华东华北西南西北东北华中港澳台境外

我要回帖

更多关于 包装公司从哪些点出发 的文章

 

随机推荐