NSBundle路径问题

先上图
NSBundle路径

上面是一个程序文件的主要路径图,我们平时获取默认路径或者保存文件路径的两种方式:

NSString * bundlepath = [[NSBundle mainBundle]resourcePath]

结果:
/Users/tyrantxz/Library/Developer/CoreSimulator/Devices/A010629C-B166-426B-B8CA-82EF57777F6D/data/Containers/Bundle/Application/E88A5515-5BA3-4CB7-84CC-F5D139E6EA3E/testview.app/

NSString* documentpath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

结果:
/Users/tyrantxz/Library/Developer/CoreSimulator/Devices/A010629C-B166-426B-B8CA-82EF57777F6D/data/Containers/Data/Application/AF9FA867-7210-4FAB-945F-B9619B068B15/Documents

这两者什么区别呢?

从路径上看,一个在Bundle目录下,一个在Data目录下,从上图看,Bundle目录最后是当前的执行程序,程序其实是就是个“bunlde”,可以以文件方式打开程序,里面存放的是除了代码外的资源文件,包括plist,storyboard等,也就是说,以资源为主。

另一个Data目录,最后目录如下:
这里写图片描述

可以看到,这就是所谓的”沙箱”目录,即只允许自己的程序访问,别的程序不允许访问,主要是用来存储数据和备份的。

这就是两个路径的区别,个人理解,bundle下的资源是即时访问的,data下的数据是可以间断调用的,正是因为这种区别,所以我们一般会将bundle下的数据文件copy到data/documents/下,方便对其进行读写,网上说是因为bundle中文件只能读不能写,这点笔者专门test了一下,证明是可以写的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值