swift中使用對象歸檔進行資料本地

來源:互聯網
上載者:User

標籤: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.從檔案中恢複資料的時候,返回的可能是空,所以在方法傳回值的地方要注意一下

如有不妥,望流浪(大牛)指正

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.