[第1章]数据:NSUserDefaults的使用(续)

五、写入任意类到制定文件(归档)

1、实现NSCoding协议

参考前一篇中的(四):(1)(2)。

2、存入

使用到的方法:

func stringByAppendingPathComponent(aString: String) -> String
参数:子目录;
返回:在调用该方法的字符串路径后面,添加子目录,一并返回成字符串。
stringByAppendingPathComponent

NSKeyedArchiver.archiveRootObject(rootObject: AnyObject, toFile path: String) -> Bool
参数1:实现NSCoding协议的类;
参数2:存入文件的路径(带后缀);
返回:是否存入成功。

var person = Person(name: "Tom", age: 30, gender: true)
var path = NSHomeDirectory().stringByAppendingPathComponent("person.data")

NSKeyedArchiver.archiveRootObject(person, toFile: path)

person.data

3、读取

NSKeyedArchiver.unarchiveObjectWithFile(path: String) -> AnyObject?
参数:文件的路径(带后缀);
返回:文件里面,反归档的类。

var person = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as! Person

// 打印观察结果。
println(person)

unarchiveObjectWithFile



六、第一次运行

方法原型:

defaults.registerDefaults(registrationDictionary: [NSObject : AnyObject])
参数:字典类型。

官方说明:The contents of the registration domain are not written to disk; you need to call this method each time your application starts. (大意:数据不会保存到磁盘,需要在每次App运行时调用。)

// 自定义一个标示符,用字典类型。
var isFirstLaunchDic = ["firstLaunch": true]

// App运行时,都需要调用。
defaults.registerDefaults(isFirstLaunchDic)

// 先读取默认的.plist文件里边的值,再读取通过registerDefaults: 存入的值。
var isFirstLaunch = defaults.boolForKey("firstLaunch")

if (isFirstLaunch) {
    println("第一次运行。\(isFirstLaunch)")

    // App已经是第一次运行,在默认的.plist文件中存入false。
    defaults.setBool(false, forKey: "firstLaunch")

}else {
    println("并不是第一次运行!\(isFirstLaunch)")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值