iOS ios高级工程师简历是怎么进阶的

(09月01日)
(09月01日)
(08月31日)
(08月30日)
(08月29日)
(09月01日)
(09月01日)
(08月31日)
(08月30日)
(08月29日)
IOS培训视频
IOS培训课程
达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证号-5684051人阅读
iOS面试(8)
所有的群都已到人数上限,本着“与时俱进”精神,建了个&iOS面试&公众号,
大家扫码关注后,可直接发消息给我,iOS面试相关的问题我会尽量一一回复。
在博客里出了10道iOS面试题,用他的话是:&列出了十个应聘Leader级别的高级Cocoa/CocoaTouch开发工程师所应该掌握和理解的技术& 。&
在这里給一份我的答案。 &
1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗? &
Objecitve-C的重要特性是Runtime(运行时),在#import &objc/runtime.h& 下能看到相关的方法,用过objc_getClass()和class_copyMethodList()获取过私有API;使用 &
```objective-c
Method method1 = class_getInstanceMethod(cls, sel1);
Method method2 = class_getInstanceMethod(cls, sel2);
method_exchangeImplementations(method1, method2); &
代码交换两个方法,在写unit test时使用到。 &
2. 你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的? &
没实现过多线程的CoreData(待实践)&
&!--more--&&
3. Core开头的系列的内容。是否使用过CoreAnimation和CoreGraphics。UI框架和CA,CG框架的联系是什么?分别用CA和CG做过些什么动画或者图像上的内容。(有需要的话还可以涉及Quartz的一些内容) &
UI框架的底层有CoreAnimation,CoreAnimation的底层有CoreGraphics。 & &
------------ |&
Core Animation |&
Core Graphics |
Graphics Hardware| &
使用CA做过menu菜单的展开收起(太逊了) &
4. 是否使用过CoreText或者CoreImage等?如果使用过,请谈谈你使用CoreText或者CoreImage的体验。
CoreText可以解决复杂文字内容排版问题。CoreImage可以处理图片,为其添加各种效果。体验是很强大,挺复杂的。
5. NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东西面试已经面烂了…)
NSNotification是通知模式在iOS的实现,KVO的全称是键值观察(Key-value observing),其是基于KVC(key-value coding)的,KVC是一个通过属性名访问属性变量的机制。例如将Module层的变化,通知到多个Controller对象时,可以使用NSNotification;如果是只需要观察某个对象的某个属性,可以使用KVO。
对于委托模式,在设计模式中是对象适配器模式,其是delegate是指向某个对象的,这是一对一的关系,而在通知模式中,往往是一对多的关系。委托模式,从技术上可以现在改变delegate指向的对象,但不建议这样做,会让人迷惑,如果一个delegate对象不断改变,指向不同的对象。 &
6. 你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQueue,实现了什么?请描述它和GCD的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)。
使用NSOperationQueue用来管理子类化的NSOperation对象,控制其线程并发数目。GCD和NSOperation都可以实现对线程的管理,区别是 NSOperation和NSOperationQueue是多线程的面向对象抽象。项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。
项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而Block参数的使用,会是代码更为易读,建议在简单项目中使用。
7. 既然提到GCD,那么问一下在使用GCD以及block时要注意些什么?它们两是一回事儿么?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?如何避免循环引用?
使用block是要注意,若将block做函数参数时,需要把它放到最后,GCD是Grand Central Dispatch,是一个对线程开源类库,而Block是闭包,是能够读取其他函数内部变量的函数。
8. 您是否做过异步的网络处理和通讯方面的工作?如果有,能具体介绍一些实现策略么?
使用NSOperation发送异步网络请求,使用NSOperationQueue管理线程数目及优先级,底层是用NSURLConnetion,详细可见开源框架[LWConnetion](/xunyn/LWConnetionDemo)。 &
9. 对于Objective-C,你认为它最大的优点和最大的不足是什么?对于不足之处,现在有没有可用的方法绕过这些不足来实现需求。如果可以的话,你有没有考虑或者实践过重新实现OC的一些功能,如果有,具体会如何做?
最大的优点是它的运行时特性,不足是没有命名空间,对于命名冲突,可以使用长命名法或特殊前缀解决,如果是引入的第三方库之间的命名冲突,可以使用link命令及flag解决冲突。 &
10. 你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架。
抽象和封装,方便使用。首先是对问题有充分的了解,比如构建一个文件解压压缩框架,从使用者的角度出发,只需关注发送给框架一个解压请求,框架完成复杂文件的解压操作,并且在适当的时候通知给是哦难过者,如解压完成、解压出错等。在框架内部去构建对象的关系,通过抽象让其更为健壮、便于更改。其次是API的说明文档。 &
这些问题,多数是没有统一的正确答案的,问题有深度,又是在平时工作会用到的,非常适合大家一起讨论,
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1163010次
积分:8532
积分:8532
排名:第1600名
原创:79篇
转载:30篇
评论:198条
阅读:29671
阅读:21526
阅读:558978
(1)(3)(5)(2)(4)(1)(1)(2)(5)(8)(5)(2)(2)(2)(1)(1)(5)(7)(4)(6)(5)(8)(5)(6)(5)(6)(7)(1)(2)(1)iOS 高级工程师是怎么进阶的_百度知道扫码下载官方App
iOS开发高级进阶
所属微专业:
学员请注意出于“完整学习课程、老师便于全程带班指导”的考虑,本微专业不支持单课购买。第期开班将于年月日截止报名。如需课程咨询,请联系客服()。课程体系:本微专业除了【专业课程】,还提供:专业导读、课程测验、项目实战、课程辅导等【多层教学服务】。&【专业课程:】本课程主要讲解开发的各种高级进阶技术,包括:网络编程、数据持久化,以及动画实现、多线程编程、硬件访问、性能调优等,更有。【多层教学服务】专业导读“Boolan博览网”微专业开班前,会邀请课程讲师及其他业内大牛来给大家进行专业导学,讲解如何学好该微专业,帮助大家做好开课前的准备。课程测验项目实战该课程更新期间,会根据线上课程内容布置课程测验题,结课后在规定时间内提交(具体见开课后公告);整个微专业中期,会布置综合项目实战,根据所学内容动手操练,微专业所有课程完结后提交。课程辅导开课期间,将邀请老师进行:课程答疑、作业练习、实战项目讲解;另外还会邀请行业大牛为大家带来小专题辅导,帮助大家更好的掌握。关注我们——第一时间了解“开班动态课堂干货”,不再错过各种重要的通知【微信公众号】:boolan_wx【官方微博】:
证书要求 本专业的综合成绩由三部分组成:课程测验,占课堂优秀表现(分享、讨论、创新),占注:具体考核方式请以开课后的课程公告为准。综合成绩满分为分,分以上的可以获得由博览网极客班和云课堂联合认证的合格证书,分以上的可以获得优秀证书。
预备知识 有编程语言基础学习过应用开发实战
授课大纲 节日期1.工程管理第一周:11月7日2.代码版本管理&-&Git3.View层次结构与属性4.事件处理—Event5.手势操作— UIGestureRecognizer6.UIScrollView7.图形绘制—UIKit8.图形绘制—Quartz9.图形绘制—Layer10.动画—UIKit第二周:11月14日11.动画—Transition12.动画—CoreAnimation13.多线程—NSThread14.多线程—Runloop15.多线程—NSOperation16.多线程&-&GCD17.数据存储机制&-&简易方法第二周:11月14日18.数据存储机制&-&沙盒、文件与对象归档19.数据存储机制&-&Sqlite3&数据库20.数据存储机制&-&CoreData简介21.网络编程:原生网络框架使用第三周:11月21日22.网络编程:第三方库AFNetWorking使用23.相机与照片24.音频和视频播放器25.学习定位与地图功能26.“摇一摇”功能(加速度传感器使用)27.APP产品的打包和发布& `
常见问题 见“Boolan博览网·工程师”微专业常见问题
所属微专业
所属系列课程
网易公司()旗下实用技能学习平台。与顶级机构、院校和优秀讲师合作,为您提供海量优质课程,以及创新的在线学习体验,帮助您获得全新的个人发展和能力提升。
关注我们:
& 网易公司 版权所有

我要回帖

更多关于 ios高级工程师面试 的文章

 

随机推荐