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

前端之家收集整理的这篇文章主要介绍了Swift研发中的数据缓存之一(plist文件、NSUserDefault、Archiver)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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



      /**
    1. 归档数据
    2. @H_403_279@需要实现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. @H_403_279@*数据归档处理
    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. }

    猜你在找的Swift相关文章