標籤:blog 使用 os 檔案 io 資料 for ar
對象歸檔是ios持久化中的其中一種,也是很常用的一種。現在來看看swift是如何?的。實現要點
1),必須實現NSCoding的協議
import UIKitlet path=(NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask, true)[0] as String).stringByAppendingString("user.data")class User: NSObject,NSCoding { var age:Int = 0 var name:String? init() { super.init() } init(coder aDecoder: NSCoder!) { super.init() self.age=aDecoder.decodeIntegerForKey("age") self.name=aDecoder.decodeObjectForKey("name") as? String } func encodeWithCoder(aCoder: NSCoder!) { aCoder.encodeInteger(self.age, forKey: "age") aCoder.encodeObject(self.name, forKey: "name") } class func save(user:User)->Bool{ return NSKeyedArchiver.archiveRootObject(user, toFile: path) } class func user()->User?{ return NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? User }}
其中注意是
1.實現init(coder aDecoder: NSCoder!)後,預設的init()構造方法會沒了,所以要把預設的init()實現一下,或者是自訂其他的構造方法。
2.從檔案中恢複資料的時候,返回的可能是空,所以在方法傳回值的地方要注意一下
如有不妥,望流浪(大牛)指正