iOS缓存机制主要包括按需缓存和预缓存两种,一般常用的时按需缓存,只有当应用需要实现用户对离线数据也能处理的时候才需要预缓存。
按需缓存又分为URL缓存和数据模型缓存模式,数据模型缓存可以采用NSKeyedArchive和NSKeyedUnarchive来实现,需要遵循NSCoding协议,如SDWebImage就是用来处理imge缓存的第三方库。如果遵循HTTP1.1 协议的缓存规范,那么可以用URL缓存,AFNetworking提供了对HTTP1.1 缓存规范的原生支持。
另外预缓存一般可以用Core Date实现,尽量避免使用SQList,除非数据库需要跨平台使用。
文章链接:http://blog.csdn.net/shawjan/article/details/45437531
两张图搞定消息推送机制:
无论是iPhone客户端和APNS,还是Provider和APNS1,都需要通过证书进行连接
第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 (保留了device token)
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。(始终会推送,弹出与否看是否开启推送)
文章链接:
http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html
iOS消息机制与C++中得虚函数很相像,都是运行时绑定,而且传递的方向也是由子类到父类。
iOS消息机制分为两个过程,消息传递和消息转发,消息传递的方向是子类到父类,消息传递的过程是对类的methodList进行搜寻,试图找到能够处理消息的方法。如果消息传递处理不了,那么就进行消息转发。
整个过程会建立一个“快速映射表”,以提高效率。
文章链接:http://blog.csdn.net/shawjan/article/details/45478901
iOS事件机制主要包括响应者链和事件分发两个要点,事件分发的目的是为了找到第一响应者,事件分发的过程构成了一条响应者链。
文章链接:http://blog.csdn.net/shawjan/article/details/45482239
反射机制,即通过类名来生成相应类的实例或者获取已知实例的相关信息。
在iOS中,反射机制包括:
id class = [[array objectAtIndex:0] class];
NSArray array = [[NSArray alloc] init];
[array isKindOfClass:NSObject];
[array isMemberOfClass:NSObject];
[array responseToSelector:@(objectAtIndex)];
文章链接1:
http://blog.csdn.net/x_topfan/article/details/9713231
文章链接2:
http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html
文章链接1:
http://blog.csdn.net/enuola/article/details/9148631
文章链接2:
http://xiaoxin1989521.blog.163.com/blog/static/8100919620120306735885/
文章链接3:
http://www.anzhuo.me/anzhuojiaocheng/1650.html
iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。
每个应用程序都有自己的存储空间
应用程序不能翻过自己的围墙去访问别的存储空间的内容
通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是:sandbox对应用程序执行各种操作的权限限制。
文章链接:
http://blog.csdn.net/totogo2010/article/details/7669837
对C++程序员来说,使用指针最蛋疼的就是内存管理,为了避免卷进繁琐的管理内存保证不会内存泄露,我通常尽量不使用指针。但是在objective-c中,所有的变量都是指针,那么你就不得不考虑下如何管理内存了。
iOS内存管理从手动引用计数演变到自动引用计数,本质上是没有变得,只不过编译器帮忙添加了部分release、retain代码,减少了程序员的负担,提高了代码的安全性。
文章链接:http://blog.csdn.net/shawjan/article/details/44814195
UITableView的复用机制
文章链接:http://blog.sina.com.cn/s/blog_9c3c519b01016aqu.html