NSBundle和SandBox

NSBundle:

资源包,程序上传以及从Appstore上下载的就是这个包,在目录中表现为xxx.app。它包含了应用程序正常运行的所有资源文件和可执行文件等,对用户来说只能读不能写(为了程序安全)。

SandBox:

所有的非代码文件,诸如图片、图标、声音,属性列表,文本文件等,程序运行过程中产生的各种数据皆存于此。

iOS 8之前两者位于同一目录下;iOS 8之后,xxx.app单独存放到一个独立的文件目录下,且权限为只读。

总结:
NSBundle:程序运行的保证,对用户不可见;
SandBox:因用户使用而产生的数据,如缓存,注册登陆账号,偏好设置等。

存储位置比较:
NSBundle:打印方式【[NSBundle mainBundle]
/Users/admin/Library/Developer/CoreSimulator/Devices/7A7F208E-BA94-4C9D-8F6B-ACBD6B424398/data/Containers/【【Bundle】】/Application/74801760-9918-4EDC-87F0-F0C4C8B0A1C2/WeChatDemo.app
SandBox:打印方式【NSHomeDirectory()
/Users/admin/Library/Developer/CoreSimulator/Devices/7A7F208E-BA94-4C9D-8F6B-ACBD6B424398/data/Containers/【【Data】】/Application/3CE16770-FB88-46CC-BC9E-8E7E89962B4D

你可能感兴趣的:(NSBundle和SandBox)