iO开发工程师面试题--高级

原创 2015年07月09日 17:36:16

高级iOS开发工程师面试题

CALayer与UIView的区别

最大区别是 图层(CALayer)不会直接渲染到屏幕上。

UIView是iOS系统中界面元素的基础,所有的界面元素都集成自它。它本身完全是由CoreAnimation来实现的。

真正的绘图部分,是由一个CALayer类来管理的。

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

这道题本人论文中曾经写过。

GCD

GCD是Apple开发的一个多核编程的较新的解决方法。

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

扩展:进程与线程,GCD的使用,操作队列。异步队列,异步与同步与实现。

TCP与UDP

  • TCP(传输控制协议),提供面向连接的、可靠的、点到点的通信。
  • UDP(用户数据报协议),提供非连接的不可靠的店到多点的通信。

用TCP还是UDP,看程序注重哪一方面,可靠还是快速。

socket连接与http连接

  • http连接:短连接,即客户端向服务器端发送一次请求,服务器端响应后,连接即会中断。
  • socket连接:socket连接就是所谓的长连接。理论上客户端和服务器端建立起连接后不会主动断掉。

扩展:各自怎么实现,工作原理是什么。

TCP三次握手

顺序和原理
第一次握手:客户端发送SYN包(syn=j)到服务器,同时进入SYN_SEND状态,等待服务器确认。

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

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

iOS中对象之间有哪些通信方式?

代理、block、通知、KVO

扩展:
代理如何实现,注意什么
block如何避免循环引用,在ARC和MRC下如何防止循环引用。
通知如何实现。
kvo和kvc的知识。

http协议的特点,GET请求与POST请求,https呢?

http协议是短连接,都是客户端主动发送请求,服务器做出响应。服务器响应之后,连接断开。
Get请求没有请求体。Post请求含有请求体
https协议:安全超文本传输协议。基于HTTP开发,用在客户计算机和服务器之间交换数据。它使用安全套戒子层(SSL)进行信息交换,简单来说是http的安全版。

扩展:如何实现网络获取数据,1系统自带,2第三方,如AFNetworking

xml和json数据解析

xml数据解析有两种解析方式:DOM解析与SAX解析。
- DOM解析必须完成DOM树的构造,在处理规模较大的xml文档时很耗内存,占用资源较多。
- SAX是用时间驱动模型,解析XML文档时没遇到一个开始或者结束标签、属性或者一条指令,程序就产生一个时间来进行相应的处理。SAX相对应DOM来说,更适合操作大的XML文档。

json数据解析:第三方的JSONKit和iOS自带的json解析类,常用系统自带的,效率较高。

tableview的复用,设计模式

使用,特点
单例,组合设计模式
UIButton的设计模式等

数据存数

偏好设置实现
plist文件
sqlite数据库如何存储数据。
Core Data的相关知识,从创建到存储。

断点续传是如何实现的?

原理、内容

Core开头的内容,

比如CoreAnimation和CoreGraphics,分别使用CA和CG做过些什么动画或者图像上的内容。
动画和绘图

NSOperationQueue、GCD

算法 数据结构(important)、操作系统、网络知识

算法:如冒泡算法,二分法
数据结构中链表、二叉树,一个算法的时间复杂度和空间复杂度等

android 高级开发工程师面试题

1、 如何对 Android 应用进行性能分析 1)app产品做好之后必须从每个控件在国内不同的手机品牌和不同系统版本进行兼容性测试,业内也叫遍历测试,所谓的遍历测试是可以移动识别应用的控件从而进行...
  • NotesChapter
  • NotesChapter
  • 2017年11月20日 15:40
  • 296

PHP高级工程师的面试题

1. 基本知识点 HTTP协议中几个状态码的含义:1xx(临时响应) Php代码   表示临时响应并需要请求者继续执行操作的状态代码。      代码   说明   ...
  • jt521xlg
  • jt521xlg
  • 2015年08月19日 11:28
  • 7397

高级Java开发工程师面试题汇总

1.aop 的实现原理。 2.redis的序列化方式。 3.concurrenthashmap 的实现原理。HashMap 的默认容量是多少 4.nginx 的方向代理实现方式。 5。生产消费模式。...
  • gaoqiao1988
  • gaoqiao1988
  • 2016年12月08日 13:47
  • 2935

ios高级工程师开发面试题

不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会。对于iOS和Mac开发来说,因为本事还算比...
  • wbw1985
  • wbw1985
  • 2014年02月26日 18:21
  • 14406

一些ASP.NET研发工程师的面试题

一些ASP.NET研发工程师的面试题
  • rocket5725
  • rocket5725
  • 2010年06月10日 16:25
  • 2602

高级Android工程师面试回忆录

转自:http://blog.csdn.net/theone10211024/article/details/51025022 最近打算换工作了,面试了百度作业帮、今日头条、阿里、网...
  • u011240877
  • u011240877
  • 2016年06月08日 12:26
  • 4054

整理一份PHP高级工程师面试题

**1. 基本知识点** 表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。...
  • lzhiwei
  • lzhiwei
  • 2017年07月11日 14:22
  • 588

iOS进阶面试题----经典10道

OneV‘s Den在博客里出了10道iOS面试题,用他的话是:"列出了十个应聘Leader级别的高级Cocoa/CocoaTouch开发工程师所应该掌握和理解的技术" 。  在这里給一份我的答案。 ...
  • xunyn
  • xunyn
  • 2013年12月10日 21:45
  • 98104

iOS开发面试题目(高级向)

最近在看喵神的博客 发现一个博客是写iOS的面试题目的。转载之。原地址:https://onevcat.com/2013/04/ios-interview/ 你使用过Objective-...
  • a316212802
  • a316212802
  • 2016年03月17日 16:17
  • 1022

.NET软件工程师48个面试题目

一.填空题 1.面向对象的语言具有(继承)性、(多态)性、(封装)性。 2.能用foreach遍历访问的对象需要实现 (IEnumberable)接口或声明(GetEnumberator)方法的类...
  • md912165100
  • md912165100
  • 2016年05月25日 15:12
  • 7430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iO开发工程师面试题--高级
举报原因:
原因补充:

(最多只允许输入30个字)