Swift - 文件目录路径获取及数据储存(Home目录,文档目录,缓存目录)

本文介绍了iOS应用的数据存储方式,包括plist、NSUserDefaults、归档、SQLite3和CoreData。同时详细讲解了应用沙盒结构,如Home目录、Documents目录、Library目录(Caches和Preferences子目录)、tmp目录以及NSBundle.mainBundle()路径的用途和管理策略。
摘要由CSDN通过智能技术生成
iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒。
 
应用沙盒结构分析
1、应用程序包:包含了所有的资源文件和可执行文件

2、Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录

3、tmp:保存应用运行时所需要的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行,系统也可能会清除该目录下的文件,iTunes不会同步备份该目录 4、Library/Cache:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不备份该目录。一般存放体积大、不需要备份的非重要数据 5、Library/Preference:保存应用的所有偏好设置,IOS的Settings应用会在该目录中查找应用的设置信息。iTunes

IOS中的数据存储
/**
NSSearchPathDirectory.DocumentDirectory 查找Documents文件夹
NSSearchPathDomainMask.UserDomainMask 在用户的应用程序下查找
true 展开路径   false 当前应用的根路径 == “~”
*/
let docPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as NSString // 上面代码代替下面代码,防止Documen文件夹不存在***************************************************************** // 获得沙盒的根路径 let home = NSHomeDirectory() as NSString // 获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径 let docPath = home.stringByAppendingPathComponent("Documents") as NSString

1、存储为plist属性列表

func saveWithFile() { // 1、获得沙盒的根路径 let home = NSHomeDirectory() as NSString // 2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径 let docPath = home.stringByAppendingPathComponent("Documents") as NSString // 3、获取文本文件路径 let filePath = docPath.stringByAppendingPathComponent("data.plist") let dataSource = NSMutableArray() dataSource.addObject("小桥上我曾背你走过") dataSource.addObject("河边上为你放的烟火") dataSource.addObject("电影院最后一排座我们第一次吻过") dataSource.addObject("那么多浪漫我都记得") dataSource.addObject("别再跟着我漂泊") // 4、将数据写入文件中 dataSource.writeToFile(filePath, atomically: true) } func readWithFile() { /// 1、获得沙盒的根路径 let home = NSHomeDirectory() as NSString /// 2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径 let docPath = home.stringByAppendingPathComponent("Documents") as NSString /// 3、获取文本文件路径 let filePath = docPath.stringByAppendingPathComponent("data.plist") let dataSource = NSArray(contentsOfFile: filePath) print(dataSource) }

2、使用NSUserDefaults存储数据

func saveWithNSUserDefaults() { // 1、利用NSUserDefaults存储数据 let defaults = NSUserDefaults.standardUserDefaults() // 2、存储数据 defaults.setObject("衣带渐宽终不悔", forKey: "name") // 3、同步数据 defaults.synchronize() } func readWithNSUserDefaul
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值