面试题总结

2019-04-16  本文已影响0人  329fd8af610c

这几天,又开始看《iOS程序员面试笔试宝典》,里面各个公司对招聘岗位的需求基本都是大同小异,虽然说书本有时候跟不上时代的变化,但是核心的内容应该不会出现太大的偏差。先总结如下,方便自己日后复习。

(一)企业对iOS开发者的要求都有哪些?

iOS 开发还是以Objective-C语言为主,虽然现在Swift语言比较流行,但是一些大公司以OC为主已经形成了一套完备的开发体系。OC作为苹果最原始的开发语言,学习难度较大,一些常用的语言特性以及语法还是需要努力的去体会,去掌握,比如OC中的协议(Protocol)和代理(Delegate),类别(Category),KVC,KVO,Block代码块,运行时(Runtime),多想成编程,以及内存管理机制。当然了Swift 也可以学,毕竟从iOS8以后,Xcode是支持Swift跟OC混编。

包括基本的UI框架的熟练使用和灵活应用,AutoLayout可视化界面的开发,更高要求是利用基本组建封装开发新的常用组件,甚至是对UI组件的优化等。另外,要理解界面和线程的关系,熟知优化界面流畅性的一些经验和技巧,已经屏幕的动态适配等

这些直接就决定了开发者的代码编写规范和质量,也会有关团队合作效率,要理解iOS开发核心的MVC设计模式的优缺点,同时要了解MVVM设计模式的优缺点。以及Cocoa框架中光泛存在的单例类以及单例的实现方法,观察者模式,代理模式,组合模式,工厂模式等基本常用的设计模式优缺点。

iOS开发中经常需要SDK的接入,如社会分享模块的接入,第三方登录验证接入等,熟悉常见的向ShareSDK等第三方高效接入平台的使用,熟悉第三方平台接入的一般流程和一些常见问题。

包括基本的HTTP请求,数据安全性设计,数据的加解密,以及TCP/IP等协议的理解,甚至协议的设计实现等。了解iOS中基本的数据请求的实现方法,熟悉像AFNetworking等第三方网络编程框架的使用。

实际开发为了提高开发效率,会使用一些主流的第三方封装库,如MJExtension,AFNetworking,MBProgressHUB等,也经常会使用根据公司业务需要自行开发的框架组件,同时要懂得用CocoaPods高效管理和使用大量的三方库。

内存管理和多线程编程属于进阶阶段的内容,需要熟知OC的内存管理原则,熟悉引用计数的原理,了解如何避免内存泄漏与循环引用等问题的方法,以及如何检测内存问题的出现。学习多线程编程先要理解基本的概念,然后要熟悉iOS中的3种多线程实现方法,包括NSThread/GCD/NSOperation,理解他们的区别跟应用场景。

一款软件从开发完成到发布会有很多的挑战,尤其软件的质量优化,代码优化和bug清除等,另外,Apple官方对上线软件作品的审核严格,审核包括代码安全,资源格式,用户隐私,到的伦理,内容健康等各自方面,解决自身作品的各种问题使得软件顺利发布也是对开发者能力的很好验证。

本篇就总结一下企业对iOS开发者的要求都有哪些,下一篇总结《iOS程序员面试笔试宝典》中经典的面试题。

上一篇下一篇

猜你喜欢

热点阅读