高级iOS开发工程师的面试题

作者: 952625a28d0d | 来源:发表于2015-06-23 00:27 被阅读10799次

    1:CALayer与UIView的区别是什么?

    两者最大的区别就是:涂层不会直接渲染到屏幕上;

    UIView是iOS界面元素的基础,所有界面元素都是继承于它,他的本身全是由CoreAnimation来实现的;

    真正的绘图部分,是有CALayer类来管理的;

    一个UIView上可以有n个CALayer,每个layer来显示一种东西,增强UIView的展现能力。

    2:GCD

    GCD是苹果公司开发的一个较新的多核编程的解决办法。

    GCD是一个可以替代诸如NSThread等技术的很高效和强大的技术,完全可以处理如数据锁定和资源泄露等复杂的异步编程问题。

    3:TCP和UDP

    TCP:(传输控制协议),提供面向连接的、可靠地点对点的通信;

    UDP:(用户数据报协议),提供非连接的不可靠的点对多点的通信;

    实际运用中,看程序注重的是哪一方面,是可靠还是快速;

    4:socket连接与http连接

    http连接:短连接。即客户端向服务端发送一次请求,服务端响应之后,链接即会断掉;

    socket连接:长连接。即客户端一旦与服务器建立接连,便不会主动断掉。

    5:TCP的三次握手

    第一次握手:客户端发送syn(syn=j)包到服务器,并进入syn_send状态,等待服务器进行确认;

    第二次握手:服务器收到客户端的syn包,必须确认客户的SYN(ack = j + 1),同时自己也发送一个SYN包(syn = k),即SYN + ACK包,此时服务器进入SYN_RECV状态;

    第三次握手:客户收到服务器发送的SYN+ACK包之后,向服务器发送确认包(ACK = k + 1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成第三次握手。

    6:iOS中对象之间有哪些通讯方式?

    代理 Block 通知  KVO

    7:http协议的特点,GET POST 请求,以及https协议

    http短连接,客户端主动发送请求,服务器做出响应,服务器相应之后,连接断开。GET 请求没有请求体,POST请求有请求体。

    https:安全超文本传输协议。基于HTTP开发,用户在客户计算机与服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说就是HTTP的安全版。

    8:XML与JSON数据解析

    XML:DOM和SAX解析

    DOM解析必须完成DOM树的构造,在处理规模较大的XML文件时很好内存,占用资源较多

    SAX解析是用事件驱动模型,解析XML的时候每遇到一个XML开始或者结束标签、属性或者一条指令,程序就产生一个相应的事件来进行相应的处理。SAX相对于DOM来说更适合处理较大的文档。

    JSON:JSONKit、系统自带

    9:TableView复用  设计模式

    单例 组合设计模式  UIButton设计模式

    10:数据存储

    偏好设置  Plist文件 Sqlite数据库 CoreDate

    11:断点续传如何实现的?

    12:Core内容:CoreAnimation、CoreGraphics,分别使用CA或者CG做过什么样的动画或者图像上的内容?

    13:NSOperationQueue、GCD

    14:算法:冒泡排序、二分法、数据结构(链表、二叉树、算法时间复杂度、空间复杂度),操作系统,网络知识。

    相关文章

      网友评论

      • UILabelkell:这感觉点难度 都没得 :cold_sweat:
        952625a28d0d:@唐基林 嗯呢 我有时间会写的 你写的也不错 一起学习哈
        UILabelkell:@Jafar 有没有新的,发点学习哈
        952625a28d0d:@唐基林 只是列个概要,你看下时间日期,多少年前的文章了,现在的话,iOS组件化、RAC,RXSwift、RN、Hybird技术、动态化方案、算法等、甚至服务器前端都要懂。在这个iOS泛滥并且技术浮躁的年代,认真学点东西总没错。
      • 啊左::joy:应该是初、中级工程师的面试吧。
        不过整理得很全面,点赞。
        952625a28d0d:@啊左 很早了,现在要求肯定高了
      • MrRight_li:请问笔者,什么叫 iOS 高级工程师
      • devileatapple:12. CoreAnimation做图形动画,例如位移,帧动画等;CoreGraphics,绘图,如三角形,圆形,椭圆等。
        13.NSOperationQueue和GCD都可实现多线程的,NSOperationQueue可设置最大并发数,可暂停队列和恢复队列(tableview异步加载图片,滚动时暂停,停止滚动时恢复),可设置依赖,可设置优先级;GCD不细说,同步dispath_get_main_queue,dispatch_sync,异步,dispatch_async,全局dispath_get_global_queue等。
        14.算法不谈。
      • devileatapple:11.端点续传的原理其实就是在断点重新发送请求的时候,将已下载到的字节数位置发送给服务器。然后续传。
      • 男人低调点:文中有错误,是coreData吧不是coreDate
        952625a28d0d:@男人低调点 嗯嗯 谢谢指正!

      本文标题:高级iOS开发工程师的面试题

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