做开发的时候,我们经常需要将数据保存在plist文件中,用这种方式来将数据写入磁盘,这样退出 App 再打开的话,上次写入的文件还在。
常用的方法是这个
func writeToFile(path:String, atomically useAuxiliaryFile:Bool) ->Bool
然而 writeToFile 这个函数却只属于 NSArray
假如我自定义了一个Person类来写人,然后用数组来存储Person对象,那么我将把这个数组初始化为
let personArray :[Person] = [Person]()
这时,这个 personArray 就只能是 Array,而不是 NSArray。
想要把它存储在本地plist文件中,需要用到 NSKeyedArchiver 和 NSKeyedUnarchiver
但是在此之前,你需要把你的类改造一下。
你需要在你的类中实现 encode function,实现起来也很简单,见上图。而一旦 encode 方法被实现,NSKeyedArchiver 和 NSKeyedUnarchiver 马上就被“解锁”并可以替代 writeToFile 方法啦!