IOS面试题总结
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面试题总结的更多相关文章
- 最全的iOS面试题及答案-转载
1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...
- iOS面试题及答案2015.6.7
iOS面试题及答案 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...
- iOS 面试题 总结
#include <iostream> using namespace std; int main () { char p[]={'a','b','c'}, q[]="abc&q ...
- [转载]iOS面试题总
转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载 crash 原文 ...
- 试答卓同学的 iOS 面试题
卓同学昨天写了一篇文章<4道过滤菜鸟的iOS面试题>.我手痒决定默写一个参考答案.后来发现不认真回答被大家喷成狗,所以决定积极改造,重新做人.下面就是修编之后的答案. 1. struct和 ...
- iOS面试题大全-点亮你iOS技能树
所有的内容大部分来自于网络的搜集,所以我不是一个创造者,而是一个搬运工.我尽量把题目,尤其是参考答案的出处列明.若有任何疑问,建议,意见,请联系我. 第一部分面试题来源于iOS-Developer-I ...
- 原 iOS面试题收集
原 iOS面试题收集 发表于2年前(2013-07-22 13:47) 阅读(369) | 评论(0) 4人收藏此文章, 我要收藏 赞0 听云性能监测产品App.Server.CDN免费试用,绑定 ...
- ios 面试题 经典(比较全) 根据重点总结
史上最全的iOS面试题及答案 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encodin ...
- YouKu iOS笔试题一
序言 最近收到某某同学将去youku的iOS笔试题的邮件,希望笔者能整理一下,并提供参考答案.笔者决定整理出来,并分享给大家.当然,与此同时,也想看看youku的笔试题到底有多难,也考考自己有多少料吧 ...
随机推荐
- forEach 方法 (Array) (JavaScript)
为数组中的每个元素执行指定操作. 语法 array1.forEach(callbackfn[, thisArg]) 参数 参数 定义 array1 必选.一个数组对象. callbackfn 必选.最 ...
- 企业QQ 增加在线交谈链接
企业QQ的在线交流链接跟普通QQ的在线交流不一样,普通QQ的在线交流,可以在http://shang.qq.com/v3/widget.html生成:企业qq的链接可以按以下步骤添加: 第一步:引入企 ...
- wp8 入门到精通 测量代码执行时间
Stopwatch time = new Stopwatch(); byte[] target = new byte[size]; for (int j = 0; j < size; j++) ...
- x264中I,P,B帧和PTS,DTS的关系
转自:http://www.cppblog.com/tx7do/archive/2013/01/30/197633.html 基本概念: I frame :帧内编码帧 又称intra picture, ...
- winedt打开.tex文件时会出现reading error,看不到任何文字
winedt打开.tex文件时会出现reading error,然后看不到任何文字. 解决办法:先打开空白的winedt,然后点击open,找到该.tex文件,将文件名右侧的 default 改为 ...
- I/O复用模型之epoll学习
简介: epoll是linux下多路复用I/O接口select/poll的增强版,它能够显著提高程序在大量并发连接中只有少量活跃的情况下的系统cpu利用率,原因是它会复用文件描述符集合来传递结果而不用 ...
- 【jQuery 区别】.click()和$(document).on("click","指定的元素",function(){});的区别
给出以下的代码展示: //绑定 下一页 的点击事件 $("a[aria-label='Next']").click(function(){ $("a[aria-label ...
- css新增选择器
- hdu 5692 Snacks 线段树+dfs
Snacks Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- window系统查看端口被哪个进程占用了
C:\netstat -aon|findstr 8080TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448端口被进程号为2448的进程占用,继续执行下面命令:C:\ta ...