iOS 沙盒机制的理解和使用

每个iOS应用都被限制在“沙盒”中,沙盒相当于一个加了仅主人可见权限的文件夹,及时在应用程序安装过程中,系统为每个单独的应用程序生成它的主目录和一些关键的子目录。苹果对沙盒有几条限制:

1. 应用程序在自己的沙盒中运作,但是不能访问任何其他应用程序的沙盒;
2. 应用之间不能共享数据,沙盒里的文件不能被复制到其他应用程序的文件夹中,也不能把其他应用文件夹复制到沙盒中;
3. 苹果禁止任何读写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中;
4. 沙盒目录里有三个文件夹:
Documents——存储应用程序的数据文件,存储用户数据或其他定期备份的信息;
Library下有两个文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序的偏好设置文件,不可在这更改偏好设置;
temp存放临时文件即应用程序再次启动不需要的文件。

沙盒的使用,包括写入沙盒, 读取沙盒, 删除沙盒

// 写入沙盒
- (void)writeReadArrPlistWithDataArr:(NSMutableArray *)dataArr {
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *docuPath = [path stringByAppendingPathComponent:bidPath]; // 获取沙盒路径
NSLog(@"docuPath: %@",docuPath);
BOOL b = [dataArr writeToFile:docuPath atomically:YES];
b ? NSLog(@"写入沙盒成功") : NSLog(@"写入沙盒失败");
}

// 读取沙盒文件
- (void)readReadArrPlist {
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *docuPath = [path stringByAppendingPathComponent:bidPath];
mReadArr = [NSMutableArray arrayWithContentsOfFile:docuPath];
if (!mReadArr) {
mReadArr = [NSMutableArray arrayWithCapacity:0];
}
}

// 删除沙盒中的文件
- (void)deleteReadArrPlist {
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *docuPath = [path stringByAppendingPathComponent:bidPath];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:docuPath error:nil];
}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值