iOS 8 之后的动态沙盒路径

在iOS8之前,我们获取到沙盒中的document、cache、tmp之后,下一次模拟器或真机无论重启多少次,这具体的路径是固定的,可是iOS8 之后,你要是在按原来的路径去找你想要的东西,我想它会把你坑的很惨.下面我就来说说自己的此次爬坑总结;

1>//获取沙盒路径

NSArray*path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString*documentPath = [pathlastObject];

//Users/ZZ_running/Library/Developer/CoreSimulator/Devices/B9F35720-6386-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/176DA32A-E007-42F5-8716-3BBD80FFAB4F/Library/Documents;

2>在iOS8之后,苹果可能考虑到安全因素,应用每一次重启,沙盒路径都动态的发生了变化。

iOS8中第一次启动时的路径:

///Users/ZZ_running//Library/Developer/CoreSimulator/Devices/B9F35720-6386-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/D73211C2-497C-4C92-828C-584955C23BCB/Library/Documents

iOS8中第二次启动时的路径:

///Users/ZZ_running//Library/Developer/CoreSimulator/Devices/B9F35720-6386-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/2B080462-8330-440E-AC26-B9B15E065110/Library/Documents

从下划线的部分可以明显看出,两次运行得到的沙盒路径会发生改变,虽然iOS8之后,沙盒的路径发生了变化,但是并不代表你原来沙盒路径中的数据发生了变化;同时,也并不代表路径会越来越多.你一定有所顾虑了吧,下一次重启后路径变化了,那我们的数据/文件去哪儿呢?

这个问题,你也完全没必要去担心,苹果是不会坑你的,他会帮你处理;

1>苹果会把你上一个路径中的数据转移到你新的路径中。

2>你上一个路径也会被苹果毫无保留的删除,只保留最新的路径。

//获取沙盒路径后,你一定要注意,不要把沙盒路径写入你要保存的地方,比如数据库,如果你把documentPath路径写入数据库,这样你会很惨的,只要用每次运行程序后生成的

NSArray*path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString*documentPath = [pathlastObject];发生了改变,你数据库里的路径就会消失,你就无法找到你想要的数据,你只需要将你的文件名:比如像a.jpg,你想拿到你存进去的数据,就需要让心生成的documentPath再拼上你自己的文件名比如 你的 a.jpg,这样不管document路径怎么变,你都可以找到你的文件;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值