iOS开发面试必看的100道名企面试题

面试是对自我审视的一种过程,无论你能否全部答出,都不要对自己产生任何正面或消极的评价!

接下来让我们来看看这100道题,看看你能否都答出来,坚持看到最后有答案:

1、堆和栈什么区别?  
2、数组和链表什么区别?  
3、delegate和notification什么区别,什么情况使用?  
4、什么是MVC,为什么使用MVC,有什么好处?  
5、从一个数组中找出重复的元素打印出来?  
6、UITableView能否绑定多个数据源?  
7、一个UIViewController能否管理多个UITableView ?  
8、同步请求和异步请求什么区别?  
9、iOS中的多线程操作、多线程方式  
10、UIViewController的生命周期  
11、Autorerelease对象什么时候释放?  
12、iOS数据持久化方式  
13、Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?  
14、#import 跟#include 又什么区别,@class呢, #import<> 跟 #import”"又什么区别?  
15、属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?  
16、常见的object-c的数据类型有那些, 和C的基本数据类型有什么区别?如:NSInteger和int  
17、Objective-C如何对内存管理的,说说你的看法和解决方法?  
18、如何对iOS设备进行性能测试?  
19、Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?  
20、描述一下iOS SDK中如何实现MVC的开发模式  
21、定义属性时,什么情况使用copy、assign、retain?  
22、Object-C有私有方法吗?私有变量呢?  
23、浅复制和深复制的区别?//浅拷贝和深拷贝  
24、自动释放池是什么,如何工作  
25、单件实例是什么  
26、类别的作用?继承和类别在实现中有何区别?  
27、类别和类扩展的区别。  
28、KVO and KVC?  
29、代理的作用?  
30、说说响应链?  
31、frame和bounds有什么不同??  
32、方法和选择器有何不同??  
33、Object-c的类可以多重继承么?可以实现多个接口么?重写一个类的方式用继承好还是分类好?为什么?  
34、ARC自动引用技术  
35、GCD技术  
36、类别的作用?继承和类别在实现中有何区别?  
37、代理的作用?  
38、我们说的oc是动态运行时语言是什么意思?  
39、通知和协议的不同之处?  
40、关于多态性  
41、NSOperation队列  
42、是否在一个视图控制器中嵌入两个tableview控制器?  
43、什么是id类型  
44、请简要说明viewDidLoad和viewDidUnload何时调用  
45、打印结果  
46、写一” 标准”宏MIN ,这个宏输入两个参数并返回较小的一个  
47、数组和指针的区别  
48、static的作用  
49、简述内存分区情况  
50、const char p;? charconstp;? charconst p;? const char const p;四个修饰指针有什么区别  
51、在Obj-c中有没有私有方法?私有变量?一般采用什么方法实现?  
52、obj-c的优缺点  
53、HTTP协议中,POST和GET的区别是什么?  
54、UIView与CLayer有什么区别?  
55、Quatrz 2D的绘图功能的三个核心概念是什么并简述其作用.  
56、iPhone OS主要提供了几种播放音频的方法?  
57、使用AVAudioPlayer类调用哪个框架、使用步骤?  
58、CFSocket使用有哪几个步骤.  
59、Core Foundation中提供了哪几种操作Socket的方法?  
60、线程与进程的区别和联系?  
61、iOS平台怎么做数据的持久化?coredata?和sqlite有无必然联系?coredata是一个关系型数据库吗?  
62、获取项目根路径,并在其下创建一个名称为userData?的目录。  
63、列举几种进程的同步机制,并比较其优缺点。  
64、进程间通信的方式有______  
65、http和scoket通信的区别。  
66、TCP和UDP的区别  
67、你了解svn,cvs等版本控制工具么?  
68、为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain的?  
69、通信底层原理  
70、objective-c 是所有对象间的交互是如何实现的?  
71、TCP/IP 建立连接的过程?  
72、如何引用一个已经定义过的全局变量?  
73、Objective-C如何对内存管理的,说说你的看法和解决方法?  
74、block 实现原理  
75、id、nil代表什么?  
76、为什么很多内置类,如UITableView的delegate属性都是assign而不是retain的?  
77、视图控制器的loadView方法是什么时候调用的?  
78、什么情况使用 weak 关键字,相比 assign 有什么不同?  
79、这个写法会出什么问题: @property (strong) NSMutableArray array;  
80、AFNetworking或SDWebImage 里面给 UIImageView 加载图片的逻辑是什么样的?  
81、GCD 里面有哪几种 Queue? 背后的线程模型是什么样的?  
82、什么是iOS中的沙盒机制。  
83、nil, Nil, NSNULL, NULL区别  
84、iOS中处理音频和视频使用哪些框架?  
85、如何监听View的触摸事件,事件是如何传递的、视图的响应者链是什么?  
86、xml数据的解析方式,各有什么不同?  
87、设备状态栏(Device?Status?Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?  
88、Core Graphics 和Quartz 2D的区别?  
89、如何为APP添加启动页?  
90、UIView的ContentMode是如何实现的?  
91、layer的层级结构是什么?  
92、如何确定layer的位置?  
93、transform中,可以使用kvc执行动画的属性有哪些?  
94、在一个对象的方法里面:self.name= “object”;和 name =”object” 有什么不同吗?  
95、请简述self.name= nil的机制,以及与\[namerelease\]的区别?  
96、使用sql语句查询出省名以湖开头,邮编为436001所在的市区?(表名及字段名自定义)  
97、写一” 标准”宏MIN ,这个宏输入两个参数并返回较小的一个  
98、const char p; charconstp;charconst p;const char* const p;四个修饰指针有什么区别  
99、下拉和上拉的原理?  
100、layoutSubview何时调用?  

能坚持看下来的,相信这100道题,对于从事iOS的你来说是有帮助的,小编也把这100道题的答案总结了一份,由于太多只展示前3道题答案,我做了一个文档,需要答案可以进小编的讨论组:624212887,在里面获取文档

1、堆和栈什么区别?  
答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。  
2、数组和链表什么区别?  
答:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。  
链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。  
3、delegate和notification什么区别,什么情况使用?  
答:Delegate:  
消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然然后发送者响应事件,  
delegate机制使得接收者可以改变发送者的行为。  
通常发送者和接收者的关系是直接的一对多的关系。  
Notification:  
消息的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反过来影响发送者的行为。  
通常发送者和接收者的关系是间接的多对多关系。  

转载于:https://my.oschina.net/u/4002983/blog/2252382

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值