iOS面试题:

一:网络理论知识的理解

1:Internet物理地址和IP地址转换采用什么协议

ARP(Address Resolution Protocol)地址解析协议

2:Internet采用哪种网络协议?该协议的主要层次结构?

TCP / ip  应用层、传输层、网络层、数据链接层

二:Object-C、iPhone的面试相关

1:什么是多态

多态:不同对象以自己的方式响应相同的消息的能力叫做多态。

2.你项目中用到什么设计模式

MVC模式、单例模式、委托模式、观察者模式

1)MVC模式:

MVC模式考虑三种对象:模型对象、视图对象、和控制器对象。

模型对象:代表特别的知识和专业技能,它们负责保有应用程序的数据

和定义操作数据的逻辑。

视图对象:知道如何显示应用程序的模型数据

,而且可能允许用户对其进行编辑。

控制器对象:是应用程序的视图对象和模型对象之间的协调者。

2)单例模式:

下面这些类都是采用了单例:

NSApplication、 NSFontManager、 NSDocumentController、

NSHelpManager、 NSNull,NSProcessInfo、 NSScriptExecutionContext、

NSUserDefaults

单例模式的实现:

+(WatchDog *)luckDog

{   @synchronized(self){

if(nil==_instance){

_instance=[[WatchDog alloc] init]

}

retrun _instance;

}

}

3)委托模式:

把某个对象要做的事情委托给别的对象去做。

那么别的对象就是这个对象的代理,代替它来打理要做的事。

反映到程序中,首先要明确一个对象的委托方是哪个对象,

委托所做的内容是什么。

委托代理的作用:

代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他

类,而不需要获取到那些类的指针。可以减少框架复杂度。
另外一点,

代理可以理解为java中的回调监听机制的一种类似。

4)观察者模式:

一个对象发现变化,立刻通知另外一个对象或多个对象。

Iphone的 NSNotificationCenter就是使用观察者模式。

UIApplication *app = [UIApplication sharedApplication];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:)

name:UIApplicationWillTerminateNotification   object:app];

3:数据存储的形式有哪些?

1)Sqlite

2)NSString(writetofile) ,NSData(writetofile), NSArray

(writetofile 必须是string data 等类型 plist文件),  NSDictionary

(writetofile)这些基本类型都可以直接进行文件存取。

3)对象序列化可将对象保存在文件里。

4)Core data 跟对象序列化差不多,只不过提供了可视化创建将被序列化

的对象的模型。(NSEncodeing)

5)直接进行io操作。NSInputStream, NSOutputStream

4:怎样查看一个对象的引用计数?  retainCount方法

5:KVO是什么,KVC是什么?有什么特性?

理解KVC与KVO(键-值-编码与键-值-监看)

1)、Key-value coding 机制允许通过变量名设置和获取变量值。

[myObject setValue:valueObject forKey:@"myKey"];

[myObject valueForKey:@"myKey"];

KVC只能处理对象,不能处理int、float等类型;

2)Key-value observing    将变量与某个控件绑定,当变量变化时,将

通知控件进行相应改变。

6.ASIDownloadCache 设置下载缓存

它对Get请求的响应数据进行缓存(被缓存的数据必需是成功的200请求):

[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];

当设置缓存策略后,所有的请求都被自动的缓存起来。

另外,如果仅仅希望某次请求使用缓存操作,也可以这样使用:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request setDownloadCache:[ASIDownloadCache sharedCache]];

缓存存储方式

你可以设置缓存的数据需要保存多长时间,ASIHTTPRequest提供了两种策略:

a,ASICacheForSessionDurationCacheStoragePolicy,默认策略,基于session的缓存数据存储。当下次运行或[ASIHTTPRequest clearSession]时,缓存将失效。

b,ASICachePermanentlyCacheStoragePolicy,把缓存数据永久保存在本地,

如:

ASIHTTPRequest *request = [ ASIHTTPRequest requestWithURL:url ];

[ request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy ];

IOS面试题总结的更多相关文章

  1. 最全的iOS面试题及答案-转载

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...

  2. iOS面试题及答案2015.6.7

    iOS面试题及答案     1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...

  3. iOS 面试题 总结

    #include <iostream> using namespace std; int main () { char p[]={'a','b','c'}, q[]="abc&q ...

  4. [转载]iOS面试题总

    转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载   crash 原文 ...

  5. 试答卓同学的 iOS 面试题

    卓同学昨天写了一篇文章<4道过滤菜鸟的iOS面试题>.我手痒决定默写一个参考答案.后来发现不认真回答被大家喷成狗,所以决定积极改造,重新做人.下面就是修编之后的答案. 1. struct和 ...

  6. iOS面试题大全-点亮你iOS技能树

    所有的内容大部分来自于网络的搜集,所以我不是一个创造者,而是一个搬运工.我尽量把题目,尤其是参考答案的出处列明.若有任何疑问,建议,意见,请联系我. 第一部分面试题来源于iOS-Developer-I ...

  7. 原 iOS面试题收集

    原 iOS面试题收集 发表于2年前(2013-07-22 13:47)   阅读(369) | 评论(0) 4人收藏此文章, 我要收藏 赞0 听云性能监测产品App.Server.CDN免费试用,绑定 ...

  8. ios 面试题 经典(比较全) 根据重点总结

    史上最全的iOS面试题及答案 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encodin ...

  9. YouKu iOS笔试题一

    序言 最近收到某某同学将去youku的iOS笔试题的邮件,希望笔者能整理一下,并提供参考答案.笔者决定整理出来,并分享给大家.当然,与此同时,也想看看youku的笔试题到底有多难,也考考自己有多少料吧 ...

随机推荐

  1. LSM-Tree (BigTable 的理论模型)(转)

    Google的BigTable架构在分布式结构化存储方面大名鼎鼎,其中的MergeDump模型在读写之间找到了一个较好的平衡点,很好的解决了web scale数据的读写问题. MergeDump的理论 ...

  2. 一致性hash算法简介与代码实现

    一.简介: 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 1.平衡性(Balance) 2.单调性(Monotonicity) 3.分散性(Spread) 4.负 ...

  3. 注解:【无连接表的】Hibernate单向N->1关联

    Person与Address关联:单向N->1,[无连接表的] Person.java package org.crazyit.app.domain; import javax.persiste ...

  4. 【MySQL 安装过程2】MySQL安装到 最后一部 未响应 的解决方案

    首先我们应该做的 是在控制面板将MySQL 卸载.再进行以下的操作: 1.在开始菜单下,点击运行,输入regedit,进入注册表编辑器目录下 2.在注册表编辑器里system下找到controlset ...

  5. 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题

    特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...

  6. ViewPager的广告条轮播

    首先布局 <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:androi ...

  7. Liferay 6.2 改造系列之七:关闭使用条款确认、密码提醒、新用户强制修改密码等功能

    关闭使用条款确认: 在/portal-master/portal-impl/src/portal.properties配置文件中,有如下配置: # # Set this to true if all ...

  8. Spring事务解析1-使用介绍

    spring的事务控制让我们从复杂的事务处理中得到解脱,是我们再也不需要去处理获得连接,关闭连接,事务提交和回滚等操作,再也不需要在事务相关的方法中处理大量的try..catch...finally代 ...

  9. js-高级技术

    高级技术: 1.function Person(name,age,job){ this.name=name; this.age=age; this.job=job; } var person=new ...

  10. JavaScript 笔记 ( Prototype )

    这阵子实在好忙 ( 这样说好像也不是一两个月了... ),然后因为工作伙伴都是 JavaScript 神之等级的工程师,从中也学到不少知识,毕竟就是要和强者工作才会成长呀!为了想好好瞭解他们写的程式码 ...