iOS面试题(附答案)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

iOS面试题(附答案)    1、简述一下UIViewController的生命周期?  alloc  -­‐  init  -­‐  loadView  -­‐viewDidLoad  -­‐  viewWillAppear  -­‐viewDidAppear  -­‐viewWillDisappear  -­‐viewDidDisappear  -­‐viewUnLoad  -­‐dealloc    2、#import和#include的区别?  #import导入的头文件不会多次重复导入    3、写一个计算A、B中较大值的标准宏MAX?  #define    MAX(A,B)    (  (A)(B)  ?  (A)  :  (B)  )    4、谈一下iOS中的多线程?  多线程是指从软件或硬件上实现多个线程并发执行的技术  iOS中可以使用NSThread、NSOperation、GCD实现多线程    5、谈一下Objective-­‐C的内存管理方式?  ARC、手动管理、线程池    6、简述assign、retain、copy、weak和strong分别在什么情况下使用?  答案见《iOS面试知识点整理.pdf》        7、类别的作用?说一下类别和类扩展的区别?  类别的作用是给类增加方法  类扩展可以给类增加属性或私有变量,只可以对自定义的类使用类扩展    8、说说你对KVC和KVO的理解?  KVC:键值编码,提供一种机制来间接访问对象的属性    KVO:键值观察,基于KVC实现的对类属性的观察监听    9、深复制和浅复制的区别?              答案见《iOS面试知识点整理.pdf》      10、谈一下你对block的理解,请写一个block类型的属性?  block本质是匿名函数  声明一个block:      方法一:void  (^block)(  NSString  *string);      方法二:typedef  void(^MyBlock)(NSString  *string);          @property  (nonatomic,  strong)MyBlock  block;    11、frame和bounds的区别?              答案见《iOS面试知识点整理.pdf》      12、谈一下UITableViewCell的重用机制?      13、简述一下消息推送的流程?  1、在苹果推送服务器APNs上注册deviceToken,并发送给自己的后台服务器;  2、后台服务器将deviceToken和要发送的消息打包发送给APNs(注意:这一步还需要推送证书的路径和密码)  3、APNs将消息发送给deviceToken中保存的指定设备中的指定App      14、简述一下App发布到AppStore的流程?  1、首先生成发布描述文件(通过创建生产证书  -­‐  创建AppId  (Bundle  Id)-­‐  创建发布的描述文件)  2、然后在iTunesContent中创建一个应用并填好信息  3、在XCode中将项目打包并上传(注意:Bundle  Id全程一致,  在build  Setting中填好刚创建的描述文件)  4、最后再回到iTunesContent中选择刚才上传的项目,然后点击提交。    15、谈一下面向对象的几个主要特征?  封装、继承、多态      16、谈一下你常用的一些设计模式及应用场景?  MVC  :整个项目,用于降低代码耦合度    代理  :常用于反向传值  单例  :常用于整个项目需要且只需要创建一次的类    17、谈一下关键字static的作用?关键字const呢?              答案见《iOS面试知识点整理.pdf》      18、堆和栈的区别是什么?              答案见《iOS面试知识点整理.pdf》      19、break、continue、return的区别是什么?              答案见《iOS面试知识点整理.pdf》      20、int*p中*p和p的分别代表什么  ?              答案见《iOS面试知识点整理.pdf》      21、讲一下OC和C有哪些区别?  OC是面向对象的C,OC是面向对象的语言,C是面向过程的。  OC完全兼容C语言。    22、谈谈你对代理设计模式的理解?    23、谈谈Http协议?其中GET和POST有哪些区别?  Http协议是超文本传输协议,是基于TCP/IP协议基础之上的应用层协议;HTTP是短连接,并且是无状态的协议。  GET和POST的区别:  1、GET比POST安全,GET传输参数是在url中,而POST是在body体中,但是在app中这种安全性体现不明显。  2、GET比POST快。  3、GET传输数据大小不超过1k,POST可以上传图片、文件等大的数据。    24、谈谈你对MVC开发模式的理解及你是如何在iOS项目中采用MVC模式开发的?  M:Model,V:View,C:Controller,使用MVC模式主要是用来降低代码耦合度;  在iOS项目中将模块按MVC模式划分,可以将网络请求得到的数据封装在Model中,将所有呈现的视图独立出来,然后用视图控制器ViewController来管理各个View和Model之间的数据和信息传递。    25、谈谈你对Socket的理解?TCP和UDP协议有什么区别  Socket简单来说是一种通信机制,是面向C/S(客户端/服务端)模型而设计的。针对客户端和服务端提供不同的socket对象,客户端有客户端的socket对象,服务端有服务端的socket对象,两个socket之间就可以进行通信了。  TCP(Transmission  Control  Protocol,传输控制协议)是基于连接的协议,正式收发数据前必须和对方建立可靠的连接(“三次握手”),传输速度相对UDP较慢。  UDP(User  Data  Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境,但是传输速度快    26、你常用的数据存储方式有哪些?                答案见《iOS面试知识点整理.pdf》    27、通知中心和代理都可以用来发送消息和数据,两者有什么区别?  通知:多对多  代理:一对一    28、类别和继承有哪些区别?  答案见《iOS面试知识点整理.pdf》    29、你在项目当中是如何进行网络数据请求的?  使用AFNetworking    30、你有做过iPhone6的屏幕适配吗?  在项目中你是如何进行适配的?  做过,  我在项目中对使用了XIB的UI控件就用autoLayout来适配,主要用法是对各个UI控件相对其父视图加约束  和根据同级视图加约束。在没有用XIB的UI控件(手写的UI控件)使用Masonry框架来适配.  

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功