美文网首页
iOS找工作

iOS找工作

作者: 英俊神武 | 来源:发表于2017-09-09 18:15 被阅读0次

大江东去
天下大势,合久必分,分久必合,如今这iOS的行情就是从波峰到波谷,从波谷又趋于稳定,最近小编因为任性离职了,找了两个星期的工作,颇有一番心得,希望与诸君共勉,一起度过这互联网的寒冬期,走向人生巅峰!

从目前iOS目前形势来看,相对去年略有回暖,最近面试,基本上每天两三家,从数量上看,还是可观的,但是这并不意味工作好找,现在找工作难度不断上涨,市场注定会淘汰一批浑水摸鱼之辈,你是否是其中的一个,那就要问苍天了!

既然选择了这个行业,再没有转行或者单飞之前,那就好好坚持下去,没事多啃啃博客,没事多敲敲代码,该熬夜还得熬夜,该加班还得加班,不要拿健康很重要这个冠冕堂皇的理由去懒惰自己,放纵自己,20岁不加班,30岁不熬夜,40岁你准备去哪?在这个全民IT的世代,坦白讲,真的是懒惰不起。

初露锋芒
记得去第一家公司面试,毫无准备就去了,结果是碰了一鼻子灰,当初以为面试官问的问题问得很难,但是现在想来,也属于一个常问的面试题。多线程的应用场景。
问:当a,b,c,d四个线程,a,b,c执行完的结果,将作为d的一个参数传入,怎么实现? (个人觉得这个问题这是一个道非常好的面试题,但是小编没有答上来,很是尴尬)
如果你说出了dispatch_group,或者队列组这个两个关键词,那恭喜你答对了,下面是示例代码。
/**

  • 使用dispatch_group,异步多请求
    */
  • (void)asyncBaseData{
    // 全局并行队列
    dispatch_queue_t globalQueue = dispatch_get_global_queue(0, 0);
    // 创建一个group
    dispatch_group_t group = dispatch_group_create();
    dispatch_group_async(group, globalQueue, ^{
    // 执行请求1... (这里的代码需要时同步执行才能达到效果)
    });
    dispatch_group_async(group, globalQueue, ^{
    // 执行请求2...
    });
    dispatch_group_async(group, globalQueue, ^{
    // 执行请求N...
    });
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"全部请求执行完毕!");
    });
    }

延着这个问题基本上每个面试官都会多线程的几种创建方式,和优缺点,这个问题必须要答对,不然面试基本可以宣布阵亡了!小编总结了一下,觉得这样记起来比较方便一点。
ios三种多线程技术:
1.NSThread
(1)使用NSThread对象建立一个线程非常方便
(2)但是!要使用NSThread管理多个线程非常困难,不推荐使用
(3)技巧!使用[NSThread currentThread]跟踪任务所在线程,适用于这三种技术
2.NSOperation/NSOperationQueue
(1)是使用GCD实现的一套Objective-C的API
(2)是面向对象的线程技术
(3)提供了一些在GCD中不容易实现的特性,如:限制最大并发数量、操作之间的依赖关系
3.GCD —— Grand Central Dispatch
(1)是基于C语言的底层API
(2)用Block定义任务,使用起来非常灵活便捷
(3)提供了更多的控制能力以及操作队列中所不能使用的底层函数

不过最近多线程面试又出新花样了,有两道出现率比较高,小编给大家share一下。
(1)AFN里面是GCD用得多一些,还是NSOperation多一些
(2)多线程GCD,可以暂停线程吗?
这两个问题就留个各位同仁去思考了,很easy,但是坦白讲我真的不明白问这些问题有什么意义,也许面试官也是上网一搜,然后就把上面的题目拿来面试了吧,所以面试很多公司都是这样的鬼问题,毫无新颖!

第二种问题:runtime的那些事
关于runtime的问题,也是面试官喜欢问的,虽然工作中可能不常用,但是面试很喜欢问,后来我发现runtime是OC的灵魂,runtime如果用得好,将会起到一劳永逸的效果。
面试官基本上都会问两个问题
(1)什么是runtime
我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));
小编觉得msgSend这个单词还是强行记住比较好,因为你一说msgSend,面试官就知道你说的是什么。
(2)你用过runtime的哪些方法,能说下他们的应用场景吗?
这个问题可以结合你真实项目情况来去回答,当然回答越多越详细越好。如果你项目经验比较,可以参照小编下面给出的解答,去思考一下!
①首先当我要做本地缓存到时候,把一个复杂对象数组存储到NSUserdefault里面,这个时候肯定要归档和接档,如果我这个数据模型里面的属性很多,岂不是要写很多关于归档和接档的方法,那不是有点淡淡的忧伤,现在如果你用runtime去遍历模型的属性,进行归档和接档,两个方法就搞定了,多余的时间你就可以去喝茶了。
②如果你项目前期没有做国际化,后期产品经理说,我们项目要推广到美国去,你们这个版本要做国际化了,当你听到这个消息,你是不是想拿刀劈了产品经理啊,拿到appStore去祭天啊,哈哈。此时你看到我这篇文章就不用了,你可以用runtime里面的一个交换方法的功能,在UILabel,或者关于文本的一个UIxxx类写一个分类,在方法中重载loadView的方法,然后在对setText这个方法进行交换,去实现你国际化应该做的事情,就OK了!

不过小编认为,这些关于runtime的面试题都不如我当时去怡亚通那个面试官问的问题问得好,也是跟runtime有关。
③他问你在项目做了哪些防止奔溃,闪退的措施?
我当时是这么回答的,我说把服务端返回的数据遍历一遍,如果有null就替换成一个空的字符串。我当时只想到这个了,但是似乎对我这个回答不太满意,后来面试结束之后,我问他怎么防止,他是这么说的:如果程序闪退,奔溃,是会发一个关于奔溃的消息,你可以捕捉它奔溃走的方法,然后用runtime去交互方法,然后给用户一个提示,或者返回到上一个页面。
个人觉得这个场景还是很受用的,虽然没面上,但是还是有所收获的。

相关文章

  • iOS找工作

    大江东去天下大势,合久必分,分久必合,如今这iOS的行情就是从波峰到波谷,从波谷又趋于稳定,最近小编因为任性离职了...

  • React Native 状态机 state

    这是本菜鸟的第3篇博文,笔主是学iOS 开发的,刚学玩iOS出来找工作就发现iOS没人要了。O(∩_∩)O...

  • iOS找工作心得

    大江东去 天下大势,合久必分,分久必合,如今这iOS的行情就是从波峰到波谷,从波谷又趋于稳定,最近小编因为任性离职...

  • 关于iOS找工作

    由于上一家公司部门重组,整个团队的人都不习惯于后来分配的部门,大家就陆陆续续的开始找工作。 我是团队中iOS开发...

  • 17年找工作总结

    因为上家公司倒闭了,加上妹子在上海,就从深圳来到了上海开始找工作,岗位还是iOS开发,找工作的过程还真的是超出想象...

  • 怕什么真理无穷,进一寸有一寸的欢喜!

    入行iOS开发整整两年了。 记录一下。 不谈技术,只是总结。 很多人都说iOS开发环境非常严峻,找工作门槛也都是3...

  • iOS学习网站

    找工作资料(重要)链接: http://pan.baidu.com/s/1slmoOTv 密码: p3n4iOS ...

  • 做ios开发的你,面对严峻的竞争市场,你何时跳槽,转行

    我相信很多人都在说,ios行业不好了,ios现在行情越来越难了,失业的人比找工作的人还要多。失业即相当于转行...

  • iOS开发加薪攻略!一个老程序员的心得!

    我相信很多人都在说,ios行业不好了,ios现在行情越来越难了,失业的人比找工作的人还要多。失业即相当于转行,跳槽...

  • iOS开发的你,准备好何时跳槽了吗?

    序言 我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多。失业即相当于转行...

网友评论

      本文标题:iOS找工作

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