美文网首页
NSBundle和沙盒(Document、Library和Cas

NSBundle和沙盒(Document、Library和Cas

作者: _Boring | 来源:发表于2017-12-19 19:43 被阅读29次

    NSBundle和沙盒(Document、Library和Cashes)

    首先要区分NSBundle和沙盒我们分两个方面来看:

    以下都是使用模拟器调试,因为等下好展示两者的文件结构。真机其实是一样的,只是要看真机的文件结构太麻烦了。

    一、文件路径
    1. NSBundle路径:/Users/wangjie/Library/Developer/CoreSimulator/Devices/26BF859E-922A-4E36-83AC-27CD6EC662AF/data/Containers/Bundle/Application/734FF183-1613-49F2-9A59-FA60B76FAD4F/YuDao.app
    2. 沙盒路径:    /Users/wangjie/Library/Developer/CoreSimulator/Devices/26BF859E-922A-4E36-83AC-27CD6EC662AF/data/Containers/Data/Application/0E060108-C1CB-4D0D-9080-4D9085140C53/
    

    这里很容易看出来差别,首先第一个差别就在Containers后面,一个是Bundle,一个是Data。
    看下面两张图:

    NSBundle路径 沙盒路径
    二、文件内容

    <1> Bundle

    Bundle主要是一些资源文件,这些资源包含了如图像,声音,编译好的代码,nib文件。这里是在程序打包时就有了点,而不是后续通过代码写进去的。

    想看具体的话,可以点击右键.app,然后选择显示包内容。这里就不贴图了。

    <2> 沙盒

    Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

    Library 目录:这个目录下有两个子目录:Caches 和 Preferences

    Preferences 目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好

    Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

    tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

    上面沙盒的简介转自http://blog.csdn.net/u012891546/article/details/50976790

    下面是我自己的用法和理解:

    Document:这里我分了两个文件:User和Common

    User:用户相关。这里分了DB(数据库)和Files(文件)。DB就是数据库文件,例如好友、聊天记录等。Files存用户头像、背景图片、动态图片等地本地文件。
    Common:通用。同User一样,分了DB和Files。DB里存一些通用数据库内容,例如首页的动态和排行榜,免得用户进来看到空的页面。Files里存启动的广告图片或视频文件、聊天用的通用表情文件(这里也可以直接打包到资源文件里,如果可变的,就写到这里)和省市区的plist文件等。

    Caches:这里我只用了图片缓存。因为我在用SDWebImage的时候发现,它就是在这里创建了一个default-com.hackemist.SDWebImageCache.default文件。

    Preferences:这里会自动生成一个BundleID生成的plist文件。其实就是你平常用的[NSUserDefaults standardUserDefaults]指向的文件。

    temp:不用管,这都是系统自己操作的。我目前发现的就是web访问访问时会往里写一些缓存数据,好像Library里的Cookies和WebKit也有,具体的不太清楚。

    这里贴两张我的文件结构:

    Document_1 Document_2

    因为这方面的文章几乎没找到过,如果有大神能分享下就太好了!!!

    相关文章

      网友评论

          本文标题:NSBundle和沙盒(Document、Library和Cas

          本文链接:https://www.haomeiwen.com/subject/nmmiwxtx.html