实现自定义数据存入 UserDefaults [iOS Swift] NSKeyedArchive & UserDefaults
2017-09-05 12:28
666 查看
我们知道 UserDefault 可以存储一些常见的基础数据类型,Int String Date 等等,但当你想存储一些自定义的一些数据 (如 People Car)的时候该怎么办呢。
在自定义类中实现
解密
加密
加密
先将数据用
取出的时候
如下,UserDefaults 在存储自定义数据时,需要:
在自定义类中实现 NSCoding
的两个方法,
解密init(coder aCoder: NSCoder)
加密
encode(with aCoder: NSCoder)
用里面的方法来处理自己类的变量
解密aCoder.decodeObject/.decodeInteger/...(forKey: "KEY")
加密
aCoder.encode(VAR, forKey: "KEY")
required init?(coder aDecoder: NSCoder) { super.init() if let reds = aDecoder.decodeObject(forKey: "redBalls") as? [Int] { redBalls = reds } else { redBalls = [] } blueBall = aDecoder.decodeInteger(forKey: "blueBall") } func encode(with aCoder: NSCoder) { aCoder.encode(redBalls, forKey:"redBalls") aCoder.encode(blueBall, forKey: "blueBall") }
先将数据用 NSKeyedArchiver
转换一下,再存储
let archivedData = NSKeyedArchiver.archivedData(withRootObject: DataVAR) // 先把在存储的变量归档 UserDefaults.standard.set(archivedData, forKey: "KEY") // 再存入 UserDefaults
取出的时候 NSKeyedUnArchiver
if let rawData = (UserDefaults.standard.object(forKey: "KEY") as? Data) { 原始数据 = NSKeyedUnarchiver.unarchiveObject(with: rawData) as! 存入的数据类型 }
相关文章推荐
- iOS设置自定义UA [NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UserAgent":
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- 用Swift写一个IOS的自定义弹窗-纯代码实现
- iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver
- iOS开发标记——各个ViewController页面数据交互,通过NSUserDefaults实现。
- Android应用自定义User Data管理(将Settings下的"清除数据"变成"管理空间")
- 【IOS功能实现】之 NSUserDefaults的用法(轻量级本地数据存储)
- IOS(swift)-数据存储 · 用NSUserDefaults存储配置信息
- iOS - UICollectionView 自定义布局之风火轮[译] (原版为swift,我这里的实现改为OC)
- iOS - 数据持久化---- NSUserDefaults & NSKeyedArchiver
- 使用Swift实现iOS App中解析XML格式数据的教程
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS-Swift版本自定义CStextView的实现
- AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象
- iOS UISlider 自定义及竖版实现&& CGAffineTransformMakeRotation 实现旋转
- iOS通过NSUserDefaults实现简单的应用间数据传递
- 【IOS-Swift】实战笔记——数据持久化之NSUserDefaults(本地轻量级数据存储)
- 04-IOSCore - User Defaults、Archive、存储总结
- 自定义类型数据存入 NSUserDefaults 中
- Android UI设计之<二>自定义SwitchButton开关,实现类似IOS中UISwitch的动画效果