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

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

时间: 2024-11-12 22:07:16

高级iOS开发工程师的面试题的相关文章

ios开发工程师常见面试题汇总

经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 2.#import 跟#include 又什么区别,@class呢: #import<> 跟 #import""又什么区别? 3.属性readwrite,readonly,

【转】2012年7月12 – 腾讯公司 WEB高级应用开发工程师 最新面试题

腾讯面试(WEB高级应用开发工程师<PHP>)非答案啊!!! 开始正题之前,容博主啰嗦两句吧,呵呵.(你也可跳过直接到红色字体看题!) 腾讯一直是我很敬重的企业,尽管小企鹅在战略上饱受争议,正面的,负面的我就不一一列举了,但又怎样?在中国,他还是能如微软一样,渗透到每一个用户的日常生活中去,这样的成绩,恐怕在世界范围内也没有多少吧!想进去自然困难丛丛,面试周期达一个月之久.技术面试只占四分之一,剩下的都是人品关!我勒个去!你知道技术对鄙人还算凑活,可这RP,我是一直持保留意见的!不过话说回来,

极客学院iOS开发工程师初级+中级+高级视频教程

下载地址:百度网盘下载 课程目录: 初级IOS开发工程师 19课程 7小时50分职业介绍1.iOS 开发的前世今生C语言基础 1.二级 C 流程控制 2.二级 C 函数与指针 3.二级 C 数组4.二级 C 字符串5.二级 C 作用域.预处理与存储 6.二级 C 结构体与共用体 7.二级 C 文件Swift语言基础1.Swift 语言基础2.Swift 中的字符串和集合 3.Swift 中的函数和闭包 4.Swift 面向对象基础(上)5.Swift 面向对象基础(中) 6.Swift 面向对象

iOS开发工程师笔试题

iOS开发工程师笔试题 分类: IOS 面试题2013-01-17 10:28 820人阅读 评论(0) 收藏 举报 随着iOS平台开发的职位的增加,笔试.面试也越来越有“套路”,这里我总结了一些面试题,多数是Objective-C的基础知识,适合于面试新人,答案是我自己答的,不准确的地方,欢迎指出. 1.   Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以实现多个接口,通过实

如何定义和区分高级软件开发工程师

在软件开发领域,高级开发工程师通常是指那些编写代码超过 3 年的人.这些人可能会被放到领导的位置,但经常会产生非常糟糕的结果.Matt Briggs 是一名高级开发工程师兼 Scrum 管理员.他认为,单纯使用年限来划分开发人员存在问题,两个同样具有 10 年开发经验的开发人员可能大不相同.近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段. 初级开发工程师 初级开发工程师通常是指那些刚刚结束学生生涯的开发者.他们以为自己什么都懂,但是面临问题时却又一筹莫展.他们不熟悉

51CTO学院Python高级自动化开发工程师微职位学员自我介绍

51CTO学院Python高级自动化开发工程师微职位 自我介绍及学习宣言 亲爱的小伙伴:欢迎大家报名51CTO学院&老男孩Alex Python高级自动化开发工程师微职位学习,跟随alex.武sir学习屌炸天的python技术,成就技术大牛之梦.为了督促大家一直积极认真努力的学习,请各位同学在跟帖写出你的自我介绍.学习宣言,不忘初心,一直跟着老师一步一个脚印,扎扎实实学本领. 跟帖格式:我是xxx,我参加了51CTO学院&老男孩Alex Python高级自动化开发工程师微职位学习,从201

Java开发工程师上机笔试题

网上看到3道比较好的Java开发工程师上机笔试题,没有答案这里把答案写出来,给大家参考. 1.编一个程序,输入10个整数,并放在数组中,先降序输出所有的数,再统计并输出其中正数.负数和零的个数 package cn.Pigzhu.test; import java.util.Scanner; /**  * 控制台输入10个数字,并输入正负和零的个数  * @author xiaoyezhu  *  */ public class test { public static void main(St

如何成为一名优秀的iOS开发工程师

如果你是一位专业的iOS开发工程师,你应该为自己感到自豪.因为你能在强大的iOS系统下,一展身手实现自己和他人的想法,这是一件令人无比激动的事情. 作为一名iOS开发工程师,你一定想成为行业的佼佼者.那么,如何成为一名优秀的iOS开发工程师呢?我觉得做到以下几点,你就离优秀越来越近了. 提高英语水平 作为码农,英语水平虽然不是一个硬指标,但是,如果你的英语水平足够好,那真是如虎添翼.在公司里面,糟糕的英语表达能力也掩盖了你在软件开发技术上的优势. 很多优秀的技术文章都是英文版本的,就像苹果官方文

iOS 开发工程师

iOS 开发工程师 工作职责: 负责下厨房 iPhone 客户端的产品开发.维护.优化以及扩展. 任职要求: 对技术有热情,热爱新的挑战 熟悉 CocoaTouch, ASIHttpRequest, SDWebImage, GCD, Core Animation, CoreData 等 熟悉 KVO, ARC 了解设计模式及其原理 能独立解决技术问题 有团队协作精神 加分项: 参与过开源项目 有 GUI 程序优化经验 熟悉 Android 或其他平台 GUI 程序构建