Swift中的NSKeyedArchiver使用
来源:互联网 发布:怎么举报网络赌钱 编辑:程序博客网 时间:2024/05/29 18:17
swift利用NSKeyedArchiver归档
//为什么会出现报错呢?
//init(coder decoder:NSCoder){}中解档没有写完.
import UIKit
class CellData: NSObject {
//cell的标题
var text:String =""
//cell的勾选属性
var isChecked:Bool
//构造方法
init(text:String,isChecked:Bool){
self.text = text
self.isChecked = isChecked
}
//勾选属性取反方法
func chengedChecked(){
self.isChecked = !isChecked
}
//编码成OBject
func encodeWithCoder(aCoder:NSCoder!){
aCoder.encodeObject(text,forKey:"text")
aCoder.encodeObject(isChecked,forKey:"isChecked")
}
//从NSObject解析回来
required init(coder aDecoder:NSCoder!){
self.text = aDecoder.decodeObjectForKey("text")as String
self.isChecked = aDecoder.decodeObjectForKey("isChecked")as Bool
}
}
class CellData: NSObject {
//cell的标题
var text:String =""
//cell的勾选属性
var isChecked:Bool
//构造方法
init(text:String,isChecked:Bool){
self.text = text
self.isChecked = isChecked
}
//勾选属性取反方法
func chengedChecked(){
self.isChecked = !isChecked
}
//编码成OBject
func encodeWithCoder(aCoder:NSCoder!){
aCoder.encodeObject(text,forKey:"text")
aCoder.encodeObject(isChecked,forKey:"isChecked")
}
//从NSObject解析回来
required init(coder aDecoder:NSCoder!){
self.text = aDecoder.decodeObjectForKey("text")as String
self.isChecked = aDecoder.decodeObjectForKey("isChecked")as Bool
}
}
——————————————存---------------------------
//将数据保存到沙盒的方法
func saveCheckListData(){
var data = NSMutableData()//创建一个可变的二进制数据
//声明一个归档处理对象
var archiver = NSKeyedArchiver(forWritingWithMutableData: data)
//将arrayData按对应的CheckListData关键字进行编码
archiver.encodeObject(arrayData, forKey: "CheckListData")
//结束编码
archiver.finishEncoding()
//数据写入
data.writeToFile(dataFilePath(), atomically: true)
func saveCheckListData(){
var data = NSMutableData()//创建一个可变的二进制数据
//声明一个归档处理对象
var archiver = NSKeyedArchiver(forWritingWithMutableData: data)
//将arrayData按对应的CheckListData关键字进行编码
archiver.encodeObject(arrayData, forKey: "CheckListData")
//结束编码
archiver.finishEncoding()
//数据写入
data.writeToFile(dataFilePath(), atomically: true)
}
——————————————读--------------------
//从沙盒中读取数据
func loadCheckListData(){
//1.获取本地数据文件路径
let path = self.dataFilePath()
//2.创建文件管理器
let manager = NSFileManager()
//3.判断文件路径是否存在
if manager.fileExistsAtPath(path){//存在
//4.读取文件
let data = NSData(contentsOfFile: path)
//5.创建解码器
let unArchiver = NSKeyedUnarchiver(forReadingWithData: data!)
//6.通过归档时设置的关键字CheckListData来还原arrayData
arrayData = unArchiver.decodeObjectForKey("CheckListData")as Array
//7.关闭解码器
unArchiver.finishDecoding()
}else{//找不到本地文件
//没找到创建新的
saveCheckListData()
}
func loadCheckListData(){
//1.获取本地数据文件路径
let path = self.dataFilePath()
//2.创建文件管理器
let manager = NSFileManager()
//3.判断文件路径是否存在
if manager.fileExistsAtPath(path){//存在
//4.读取文件
let data = NSData(contentsOfFile: path)
//5.创建解码器
let unArchiver = NSKeyedUnarchiver(forReadingWithData: data!)
//6.通过归档时设置的关键字CheckListData来还原arrayData
arrayData = unArchiver.decodeObjectForKey("CheckListData")as Array
//7.关闭解码器
unArchiver.finishDecoding()
}else{//找不到本地文件
//没找到创建新的
saveCheckListData()
}
}
0 0
- Swift中的NSKeyedArchiver使用
- Swift NSKeyedArchiver
- 使用NSKeyedArchiver保存数据
- 使用NSKeyedArchiver保存数据
- 使用NSKeyedArchiver保存数据
- NSKeyedArchiver归档的使用
- 使用NSKeyedArchiver归档
- NSKeyedArchiver的简单使用
- [Swift]Swift 中的指针使用
- NSKeyedArchiver
- NSKeyedArchiver
- NSKeyedArchiver
- NSKeyedArchiver
- Swift 中的指针使用
- Swift 中的指针使用
- Swift 中的指针使用
- swift中的xib使用
- Swift 中的指针使用
- 合并排序
- SSH Secure Shell Client中文乱码的解决方法
- samba服务器的安装
- 如何在 Ubuntu 15.04 系统中安装 Logwatch
- 构造函数中成员变量初始化顺序问题
- Swift中的NSKeyedArchiver使用
- web前端,html+css常用元素,属性总结
- [letecode java] Convert Sorted Array to Binary Search Tree
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- 宁以const引用传递代替按值传递(内置类型除外)
- CUDA DLL 开发流程
- Redis --- 常用命令
- 13 种激励程序员的方法
- leetcode Maximum Depth of Binary Tree