iOS开发之内存缓存 磁盘缓存 沙盒

来源:互联网 发布:网络世界边锋游戏 编辑:程序博客网 时间:2024/06/05 14:40

        最近一直看到“缓存”两字,索性自己总结一下,希望大神看到多多指点。

        说到缓存,缓存分为内存缓存和磁盘缓存两种,内存是指当前程序的运行空间,磁盘是程序的存储空间; 内存缓存速度快容量小,磁盘缓存容量大速度慢可持久化;内存是临时存储文件用的,供CPU直接读取,比如说打开一个程序,他是在内存中存储,关闭程序后内存就又回到原来的空闲空间, 而磁盘是永久存储东西的,只要里面存放东西,不管运行不运行 ,他都占用空间!

       磁盘缓存是存在Library/Caches

       iOS的沙盒机制 

         iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等

         

        

         默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。
         Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

         Library:存储程序的默认设置或其它状态信息;
                    Library/Caches:      存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除.
                    Library/preferences: 存放的是 user default 存储的信息,iTunes会备份此目录, 应用程序重新启动不会丢弃数据,我们使用                                                         NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写到plist中!
         tmp:提供一个即时创建临时文件的地方, iTunes不会备份此目录

        用户生成的文件放在documents,自己的文件放在library/cache里面,简单的说明:如果你做个记事本的app,那么用户写了东西,总要把东西存起来。那么这个文件则是用户自行生成的,就放在documents文件夹里面。如果你有一个app,需要和服务器配合,经常从服务器下载东西,展示给用户看。那么这些下载下来的东西就放在library/cache。apple对这个很严格,放错了就会被拒。主要原因是ios的icloud的同步问题。

        内存缓存:参照   http://blog.csdn.net/zhuqilin0/article/details/6647123

        磁盘缓存:参照   http://blog.csdn.net/sunnyboy9/article/details/51236205

      今天才发现,我14年建的博客,竟然就那么几篇文章尴尬,我也真是对我无语了大哭。以前总认为写博客,不如写笔记,所以我的笔记一大堆,但是有人和我说,写博客和写笔记是不一样的,写笔记是给自己看的,写博客是给别人看的,区别在于互动,别人看了你的博客,如果感觉好或是有差异,有可能会给你评论,你也会根据评论,继续深入研究,理解的比较透彻,所以我决定,从今天开始,我开始写博客了。

原创粉丝点击