iOS 面试时可能会提到的知识点,整理下!

1、frame bouns  区别  在view中画出区别2、代理、单例  手写代码
3、设计模式   延迟加载    监听     kvo    mvc
4、深拷贝 浅拷贝  区别  举例开发工程中哪些实现了这些   ios中哪个实现了深拷贝
5、动画   view中哪里可以实现动画
6、layer 与view的区别   
7、绘制图片文字   你的思路
8、你站在开发者角度 为啥需要设计代理  
9、retain 与copy的区别
10、多线程 nsthread   nsoperetation  gcd
11、block   __block为啥需要这个
12、数据库    实现中遇到的问题
13、使用过的开源api   以及使用时遇到的问题  以及是怎么解决的
14、使用代理的好处  为啥要使用代理   与通知的区别
15、同步队列  异步队列   区别
16、怎么解决版本手机兼容性问题


1.写一下UIButton与UITableView的层级结构 
2.Cocoa的Foundation对象与Core Foundation对象通过什么关键字进行转换?这些关键字有什么区别? 
3.KVO是什么?内部是怎么实现的? 
4.是否可以把比较耗时的操作放在NSNotificationCenter中处理?为什么?应该如何处理? 
5.利用NSOperation与NSOperationQueue处理多线程时,有3个NSOperation分别为A,B,C,要求A,B执行完之后,才执行C,如何做? 
6.在非ARC中,可以对哪些对象加上autorelease关键字,它的作用是什么?被autorelease修饰的对象什么时候释放? 
7详细说明一下App启动过程,从main文件开始说起.main中有什么函数,几个参数,作用是什么? 
8CAAnimation是做什么的?写一下它的层级结构(主要是写下其各种子类)? 
9.iOS7之前,后台执行内容有几种形式,都是什么? 
10.一个有序的序列M,判断其中是否有两个元素A,B的和为K?如何判断三个元素的A,B,C的和为K呢? 


1.你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?
用过一些比较简单的功能,替换对象的Method,使用AssociatedObject来传值,根据一个Class来获取它的propertyList等等。头文件<objc/runtime.h>。
2.你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?
从来没用过Core Data,一直使用sqlite3(或者FMDatabase)来做缓存。
3.Core开头的系列的内容。是否使用过CoreAnimation和CoreGraphics。UI框架和CA,CG框架的联系是什么?分别用CA和CG做过些什么动画或者图像上的内容。(有需要的话还可以涉及Quartz的一些内容)
UI框架应该是CA的上层框架,CG开头就是是Quartz框架的。我的理解是,UI是画板,而CA是画布,CG算是画笔吧。画板用于承载画布,画笔用于在画布上绘制。
4.是否使用过CoreText或者CoreImage等?如果使用过,请谈谈你使用CoreText或者CoreImage的体验。
CoreImage没用过,如果去面试一些做图形处理的公司的话,还是要先突击一下的好。CoreText用来做图文混排,或者一些格式上的编排,这个例子好多了。
5.NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东西面试已经面烂了…)
KVO用的好少,这里随便说点,欢迎指正。通知和KVO都是一对多,通知需要主动发(需要写代码postNotifcation),而KVO不需要,接收的时候,通知用自定义的方法来处理,KVO需要在自己的协议方法里来处理。
可以用delegate Array 来实现类似的功能,参考XMPPFramework中的GCDMulticastDelegate。
6.你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQueue,实现了什么?请描述它和G.C.D的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)。
前者默认是并发队列,但是可以通过配置操作对象的依赖关系实现串行,而GCD有并发队列(全局队列)和串行队列(私有队列)。再就是前者使用操作对象,后者使用block,其实差别不大。
7.既然提到G.C.D,那么问一下在使用G.C.D以及block时要注意些什么?它们两是一回事儿么?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?
GCD是一种处理机制,block是一种语法,当然不是一回事。需要注意的最多就是循环引用。ARC和MRC中有区别,最重要的一点是使用__block关键字修饰的变量,在ARC中会被retain,但是在MRC中不会被retain。
8.您是否做过异步的网络处理和通讯方面的工作?如果有,能具体介绍一些实现策略么?
大多数网络处理都应该是异步的吧,这个貌似就是和面试官聊聊天了。
9.对于Objective-C,你认为它最大的优点和最大的不足是什么?对于不足之处,现在有没有可用的方法绕过这些不足来实现需求。如果可以的话,你有没有考虑或者实践过重新实现OC的一些功能,如果有,具体会如何做?
我的看法是:最大的优点,应该说最大的特点就是运行时了,最大的不足,听说是不支持多重继承和运算符重载,呵呵,反正我也不会。
10.你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架。
多人维护的项目,经常要写一些共用的类,这样的类按功能合在一起就算是一个框架了。需要做的地方么,第一功能稳定不要出问题,第二接口简单明了最好有注释。 


1,Objective-C的内存管理方式, NSAutoreleasePool的作用
2,写一个retain方式声名属性的setter方法
3,Objective-C与C的区别有哪些
4,列出你常用的几个设计模式,列出如何在Objective-C中实现与应用
5,drawRect, lasyoutSubViews的区别
6,列举Cocoa中常用的几种多线程实现,并谈谈多线程安全问题的几种解决方案,什么地方会用到多线程
7,Socket连接相关库,TCP,UDP的连接方法,HTTP的几种常用方式




iOS Client 与WebSocket 通信(一)
http://blog.csdn.net/justinjing0612/article/details/9365879


[原创] ARC官方文档翻译!
http://bbs.feng.com/read-htm-tid-3448966.html


iOS开发中很重要,很常用,但却容易被忽略的知识点:id ,NSObject, id<NSObject>区别  
http://www.cocoachina.com/bbs/read.php?tid=151376


Objective-C Blocks Quiz
http://blog.parse.com/2013/02/05/objective-c-blocks-quiz/


iOS 排序算法总结、二分法查找
http://bbs.9ria.com/thread-222314-1-1.html


ios开发之常用算法设计方法 递归
http://bbs.9ria.com/thread-260216-1-1.html


23种设计模式的意图和适用范围
http://www.cnblogs.com/snake-hand/archive/2011/11/14/2452230.html


很全面的ios面试题以及解答,很多答案不一定全对,网上摘录以及自己的理解
http://blog.csdn.net/itianyi/article/details/8856517


iOS:堆(heap)和栈(stack)的理解
http://mobile.51cto.com/iphone-394484.htm


Objective-C的Block,递归与泛型
http://arthurchen.blog.51cto.com/2483760/616735/


《Objective-C 2.0程序设计》摘要
http://web2.0coder.com/archives/220


MQTT协议
http://baike.baidu.com/link?url=OFMli5e38zPzT1HdDaAcm10m1zT3VOIfWtT9XDY_GlHFcb0cjtAXNrqp3dNYfE3D2hMURoZpEUasIvHesyI5Eq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值