美文网首页
iOS 沙盒目录使用

iOS 沙盒目录使用

作者: 姜流儿96 | 来源:发表于2019-07-31 10:12 被阅读0次

    沙盒之中包有含三个目录,Documents、Library、temp。
    1、简单介绍
    1)Documents 目录:这个目录用于存储用户数据。该路径可通过配置实现iTunes共享文件。iTunes或iCloud会对其进行备份。
    2)Library 目录:这个目录下有两个子目录:
    Preferences 目录:包含应用程序的偏好设置文件。iTunes或iCloud会对其进行备份。
    Caches 目录:存放缓存数据,可以重新下载或生成的数据,同时没有这些数据不会影响用户离线使用。缓存数据在设备低存储空间时可能被删除。iTunes或iCloud不会对其进行备份。
    3)tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。系统会不定期删除其中的文件。当不需要其中的文件时应尽快删除,以免浪费用户的存储空间。该路径下的文件不会被iTunes备份。

    2、获取方法:

    // 获取沙盒主目录路径
    NSString *homeDir = NSHomeDirectory();
    // 获取Documents目录路径
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    // 获取Library的目录路径
    NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    // 获取Caches目录路径
    NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
    // 获取tmp目录路径
    NSString *tmpDir =  NSTemporaryDirectory();
    

    3、注:
    因为Caches路径下在低存储有被删除的可能性,所以需要离线使用的数据不应存储在这个路径下。可存储在Documents路径下,但是必须加入"do not backup"属性。在官方文档中有一段说明:

    Remember that files in Documents/ and Application Support/ are backed up by default. You can exclude files from the backup by calling -[NSURL setResourceValue:forKey:error:] using the NSURLIsExcludedFromBackupKey key. Any file that can be re-created or downloaded must be excluded from the backup. This is particularly important for large media files. If your application downloads video or audio files, make sure they are not included in the backup.

    因为Documents路径下的文件默认会被iTunes或iCloud备份,所以必须把可下载或重新生成的文件排除在外尤其是大型文件,如音视频等。
    目前这种方法本人已试过,可过审。如有变化会第一时间改正,也请朋友们发现有变化,通知我一下,谢谢。

    相关文章

      网友评论

          本文标题:iOS 沙盒目录使用

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