2017.5.14沙盒、简单读写操作

一、沙盒:每一个应用程序都有一个沙盒,只能在自己的沙盒中进行文件访问,iOS8以后开放了部分文件

1、沙盒目录结构:

NSSearchPathForDirectoriesInDomains(获取)介绍:http://blog.csdn.net/xingxing513234072/article/details/24184917

      documents(用于存储用户数据,iTunes备份和恢复的时候会包括此目录,所以,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下。)(数据持久化保存)

//获取document的路径:

       let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

print(documents[0])

print("11"+NSHomeDirectory())

      library(包含两个子目录:Caches 和 Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。)(缓存文件,应用退出不会自动删除)

//获取library的路径:

let lib = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)

print("lib = " + lib[0])

let caches = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)

print("caches = " + caches[0])

//prefer 不可以直接获取

let prefer = lib[0] + "/Preferences"

print("prefer = " + prefer)

      tmp(存储临时文件,应用退出会自动删除)

//获取temp目录 获取到沙盒根目录(NSHomeDirectory) 再拼接temp目录

let temp = NSHomeDirectory() + "/tmp"

print("tmp = " + temp)

2、打开沙盒模拟器的方法:

      直接在Finder->前往->前往文件夹,输入上面的内容即可:/Users/140xiangwenjing/Library/Developer/CoreSimulator/Devices/27D1ABAB-8FD8-4AEB-ACF5-968100682C81/data/Containers/Data/Application/5767F33A-EF32-45EB-BBB1-20F27DD1AE63/tmp

通过Finder一步步查找

    模拟器上的APP的沙盒实在用户目录下的资源库里面,但是资源库是隐藏文件夹。所以查看沙盒之前,现将隐藏文件夹显示出来。

显示隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false


注意:大文件不能在iTunes同步的文件夹中(上线被拒绝)

二、简单读写操作:http://www.jianshu.com/p/0471b2d0fe2c

String、Data、Array、Directory

FileManager :文件管理类(单例)

//单例(创建对象文件是一样的)

//获取当前应用程序 UIApplication.shared.keyWindow(获取主平面)    UserDefaults.standard  单例在程序运行期间不会被释放

(encoding编码格式:encoding:.utf8)

注意:单例在程序运行期间不会被释放,一般用于资源共享

//1、创建文件夹

//2、移动文件夹/重命名(判断是凑存在文件夹在移动,先执行4)

//3、删除

//4、是否存在

FileHandle(文件句柄)

Write...文件追加

Read...读取某一部分


3、复杂对象写入:http://www.jianshu.com/p/0471b2d0fe2c

//1、遵守NSCoding协议,实现两个方法()

//2、现创建对象

//3、创建一个NSMutableData

//4、根据NSMutableData创建Acr对象(归档工具)

//5、Acr对象encoding方法

//6、写入data对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、 沙盒概念基本介绍 iOS 应用程序只能在该 app 的文件系统中读取。这个默认的 app 文件系统就是我们说...
    Laughingg阅读 2,833评论 2 10
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,285评论 30 472
  • 提到数据持久化 我们必须得先了解IOS程序的沙盒机制(sandBox)。 1.IOS沙盒机制介绍 iOS应用程...
    _Half______阅读 12,678评论 4 24
  • iOS沙盒机制 沙盒机制 不好意思,我又一次来到了你们的世界,其实我是拒绝的,但是我的无法忍受内心的躁动!额我TM...
    iOSDevVicky阅读 2,052评论 0 12
  • 前言:iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图...
    ChinaSwift阅读 2,255评论 1 12