model存储 swift_iOS ~ Swift之数据存储(.plist,NSUserDefaults,NSKeyedArchiver)

本文介绍了Swift中三种常见的数据存储方式:.plist文件存储、NSUserDefaults以及NSKeyedArchiver(NSCoding)。详细阐述了每种方式的存储目录、使用方法以及优缺点,并提供了代码示例。.plist适用于存储特定类型数据,NSUserDefaults适合保存应用偏好设置,而NSKeyedArchiver用于归档和恢复遵循NSCoding协议的对象。
摘要由CSDN通过智能技术生成

最近公司项目中使用了本地存储,所以趁着周六日来整理一下在Swift中的几种数据存储方式。

一、plist文件存储

存储目录:Documents

每次在Xcode中新建一个iOS项目后,都会自己产生一个.plist文件,里面记录项目的一些配置信息。我们也可以自己创建.plist文件来进行数据的存储和读取。

.plist文件其实就是一个XML格式的文件,支持的数据类型有NSDictionary、NSArray、Boolean、NSData、NSDate、NSNumber、NSString这些类型。

在这里简单说一下关于应用程序各个文档所在的目录:

Home目录 ./

获取方式:

let homePath = NSHomeDirectory()

打印出来以后,可以复制到Finder->前往 -> 前往文件夹中,查看文档。

home.png

正如我们看到的,在home下有三个文件夹,下面我们分别来看一下这三个目录。

1.Documents目录 ./Documents

用户文档目录,苹果建议将程序中建立的或者在程序中浏览到的文件数据保存到该目录下,iTunes备份和恢复的时候会包括此目录

获取方式:

//方法1

//swift 2

let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0].stringByAppendingString("user")

//swift 3

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0].appending("user")

//方法2

let ducumentPath2 = NSHomeDirectory() + "/Documents"

2.Library目录 ./Library

这个目录下有两个子目录:Caches 和 Preferences

Library/Preferences目录,包含应用程序的偏好设置文件。iOS的Settings(设置)应用会在该目录中查找应用的设置信息。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好。

Library/Caches目录,主要存放缓存文件,iTunes不会备份此目录,此目录下文件不会再应用退出时删除。一般存储体积大、不需要备份的非重要数据。

//Library目录-方法1

let libraryPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)

let libraryPath = libraryPaths[0] as! String

//Library目录-方法2

let libraryPath2 = NSHomeDirectory() + "/Library"

//Cache目录-方法1

let cachePaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)

let cachePath = cachePaths[0] as! String

//Cache目录-方法2

let

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值