加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift研发中的数据缓存之一(plist文件、NSUserDefault、Archive

发布时间:2020-12-14 07:08:27 所属栏目:百科 来源:网络整理
导读:iOS研发中的数据存储包括以下几种方式:plist文件、NSUserDefault、Archiver、SQLite、CoreData。 1、plist文件 funcsaveWithFile() { ///1、获得沙盒的根路径 lethome=NSHomeDirectory()asNSString; ///2、获得Documents路径,使用NSString对象的stringByAp

iOS研发中的数据存储包括以下几种方式:plist文件、NSUserDefault、Archiver、SQLite、CoreData。


1、plist文件


  1. funcsaveWithFile()
  2. {
  3. ///1、获得沙盒的根路径
  4. lethome=NSHomeDirectory()asNSString;
  5. ///2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径
  6. letdocPath=home.stringByAppendingPathComponent("Documents")asNSString;
  7. ///3、获取文本文件路径
  8. letfilePath=docPath.stringByAppendingPathComponent("data.plist");
  9. vardataSource=NSMutableArray();
  10. dataSource.addObject("衣带渐宽终不悔");
  11. dataSource.addObject("为伊消得人憔悴");
  12. dataSource.addObject("故国不堪回首明月中");
  13. dataSource.addObject("人生若只如初见");
  14. dataSource.addObject("暮然回首,那人却在灯火阑珊处");
  15. //4、将数据写入文件中
  16. dataSource.writeToFile(filePath,atomically:true);
  17. println("(filePath)");
  18. }
    funcreadWithFile()
  1. letdataSource=NSArray(contentsOfFile:filePath);
  2. println("(dataSource)");
  3. }

2、NSUserDefaults存储数据

    funcsaveWithNSUserDefaults()
  1. ///1、利用NSUserDefaults存储数据
  2. letdefaults=NSUserDefaults.standardUserDefaults();
  3. //2、存储数据
  4. defaults.setObject("衣带渐宽终不悔",0); background-color:inherit">forKey:"name");
  5. //3、同步数据
  6. defaults.synchronize();
  7. }
funcreadWithNSUserDefaults()
  • letdefaults=NSUserDefaults.standardUserDefaults();
  • letname=defaults.objectForKey("name")asNSString;
  • println("(name)");
  • }

  • 3、归档存储(对象需要实现NSCoding协议,归档对应encode,反归档对应decode)



      /**
    1. 归档数据
    2. 需要实现NSCoding协议
    3. */
    4. funcsaveWithNSKeyedArchiver()
    5. lethome=NSHomeDirectory()asNSString;
    6. letfilePath=docPath.stringByAppendingPathComponent("book.data");
    7. letbook=CFAddressBook(name:"Francis",0); background-color:inherit">call:"199");
    8. /**
    9. *数据归档处理
    10. NSKeyedArchiver.archiveRootObject(book,0); background-color:inherit">toFile:filePath);
    11. }

      */
    1. funcreadWithNSKeyedUnarchiver()
    2. {
    3. letdocPath=home.stringByAppendingPathComponent("Documents")asNSString;
    4. letfilePath=docPath.stringByAppendingPathComponent("book.data");
    5. letbook=NSKeyedUnarchiver.unarchiveObjectWithFile(filePath)asCFAddressBook;
    6. println("(book.name),(book.call)");
    7. }

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读