3月21日面试新媒传信总结一下下

这算是在上的处女作,说说今天的面试经历,顺便把面试中的问题总结一下,方便之后面试的同时,也展示一些此公司的面试流程及内容。其实这家公司算是中上等的公司。

先是笔试:

1、简述iOS开发中有哪些常用的消息传递机制(答案网上大批的有)

KVO:(key-value-observing)提供对象属性被改变时的通知机制

Delegate(委托):苹果内部的框架中使用很广泛,让我们自定义对象行为,只需要发送者知道接收者即可

NSNotification(通知):两个不相关的模块通信传递消息时,通知机制是非常好的工具。

Block:是一个回调

2、简述MRC和ARC?

MRC:就是手动引用计数,需要程序员自己来申请地址空间,并且自己操作其释放,

遵循的法则是:谁创建,谁释放;谁引用,谁释放

ARC:就是自动引用计数,系统自动操作。

3、简述autorelease pool的工作原理?

本质上就是一个延迟调用release。只能解释到这。若想有更深的了解请参考如下网址:

http://blog.csdn.net/hengshujiyi/article/details/46349073

4、手写一个Singleton

5、简述kvo和kvc的区别?

KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。

KVO的是KeyValue Observe的缩写,中文是键值观察。这是一个典型的观察者模式,观察者在键值改变时会得到通知。iOS中有个Notification的机制,也可以获得通知,但这个机制需要有个Center,相比之下KVO更加简洁而直接。

6、简述oc中的数据存储方式?

1、沙盒 2、plist 3、preference(偏好设置用NSUserDefault实现) 4、NSKeyArchieve 5、FMDB(对sqlite的封装)  6、coreData

7、property属性的修饰符有什么样的作用

getter=getName、setter=setName:设置setter与getter的方法名

readwrite、readonly:设置可供访问级别

assign:方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题

retain:其setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序

copy:其setter方法进行copy操作,与retain处理流程一样,先对旧值release,再copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。

nonatomic:非原子性访问,不加同步, 多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。

8、obj在编译时和运行时分别时什么类型的对象

如下面的代码,obj在编译时和运行时分别时什么类型的对象:

NSString*obj=[[NSDataalloc]init];

参考答案:

在编译时,我们所声明的obj是NSString *类型,因此是NSString类型对象。在运行时,由于指针obj所指向的是NSData类型对象的内存,因此实际上是NSData类型的对象。在编译时,这一行代码会转换成类似这样:

NSString*obj=((id(*)(id,SEL))objc_msgSend)([NSDataclass],@selector(alloc));

obj=((id(*)(id,SEL))objc_msgSend)((id)obj,@selector(init));

由于在编译时,转换成id,因此可以用NSString *指向NSData对象,而id是具备运行时特性的,因此在链接时,通过id的isa指针可以找到其所属的类,因此最终类型还是通过isa确定其所属类型。

9、关于socket

http://www.henishuo.com/ios-socket-theory/

10请把字符串“2015-2-14”转化为NSData类型

NSString *str = @"2015-2-14";

NSDateFormatter *format = [NSDateFormatter alloc]init];

format.dateFormat = @"yy-mm-dd";

format.timeZone = [NSTimeZone defaultTimeZone];

NSDate *date = [NSDate dateFromString:str];

NSLog(@"%@",date);

10、 OC JavaScriptCore与js交互

11、WKWebView新特性及JS交互

12、Swift JavaScriptCore与js交互

你可能感兴趣的:(3月21日面试新媒传信总结一下下)