美文网首页iOS高质量博客iOS 开发 程序员
【iOS开发】如何将 Array 存储在本地

【iOS开发】如何将 Array 存储在本地

作者: KyXu | 来源:发表于2015-07-22 13:45 被阅读6166次

    做开发的时候,我们经常需要将数据保存在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 方法啦!

    将peopleArray存储到本地plist 将peopleArray从本地plist中取出

    附上我在 StackOverFlow 上的相关讨论

    相关文章

      网友评论

      • 随缘吖:你好,我碰到这样一个问题。本地存储自定义对象数组,我把它NSKeyedArchiver 之后转成data进行加密,把加密后的data 放在另一个数组,写入本地文件
        问题是在我读取时候,可以读到data,进行解密,显示解密后的data也是有的,但是解密的这个data,我根本解析不出来?
        为什么
        KyXu:@此事无关风月 我没做过加密解密的,这个肯定是你做加密的问题,和存储本身没关系

      本文标题:【iOS开发】如何将 Array 存储在本地

      本文链接:https://www.haomeiwen.com/subject/rmwpqttx.html